该阵列说明了雷达。例如,如果我将最后一个字母(r)更改为k,则表示数组仍是回文,但不是。我已经尝试修复了几个小时。有什么建议吗?
char a1[] = {'R', 'A', 'D', 'A', 'K'};
boolean response = false;
for (int i = 0; i < a1.length / 2; i++)
{
if (a1[i] == a1[a1.length - 1 - i])
{
response = true;
}
else
{
response = false;
}
}
System.out.println(response);
答案 0 :(得分:3)
您只需要在break
中使用else
,否则在下一次迭代中,response
再次变为true
:
else {
response = false;
break;
}
答案 1 :(得分:3)
我们可以说,即使一次相等性检查失败,该数组也不是回文。
因此,您只需要在此之后中断循环。
char a1[] = {'R', 'A', 'D', 'A', 'K'};
boolean response = true;
for (int i = 0; i < a1.length / 2; i++)
{
if (a1[i] != a1[a1.length - 1 - i])
{
response = false;
break;
}
}
System.out.println(response);
答案 2 :(得分:0)
如果您改为使用嵌套循环,则容易得多
self.co3.reject()