我在检查整数是否为回文时遇到问题。逻辑是我将其转换为字符串,然后设置第一个和最后一个的索引。我遍历每个第一个和最后一个索引,如果它们是回文,则值应该匹配。在循环中,我将第一个索引增加一个,将最后一个索引减少一个。所以最终他们将在一半见面。我最初遇到的循环条件是两个索引都不相同。但这给了我String索引超出范围的异常。但是,当我将其更改为循环播放时,只要开始小于结束,它就可以工作。
public boolean isPalindrome(int x) { if(x < 0) { return false; } String val = String.valueOf(x); int end = val.length()-1; int start = 0; while(start != end) { if(val.charAt(start) != val.charAt(end)) { return false; } start++; end--; } return true; } }
当我这样做的时候就可以工作>
if(str.charAt(start++) < str.charAt(end--)) return false;
我在检查整数是否为回文时遇到问题。逻辑是我将其转换为字符串,然后设置第一个和最后一个的索引。我遍历每个第一个和最后一个索引以及...
如果长度为偶数,则有问题。例如,如果length为4,则将运行:
START | END
0 3
1 2
2 1
3 0
4 -1 <--- error
问题是由于数字中的数字位数: