我正在尝试这样做,将整数转换为字符串。在if子句中,如果我首先使用s.charAt(i) == s.charAt(j),然后使用i++,j--,我无法通过input = 121的测试,我得到的是false而不是true。但是如果我把s.charAt(i) != s.charAt(j)放在第一位,那么我就接受了。
错误答案:
class Solution {
public boolean isPalindrome(int x) {
String s = String.valueOf(x); //n
int l = s.length();
int i = 0;
int j = l - 1;
while (i <= j) {
if (s.charAt(i) == s.charAt(j)) {
i++;
j--;
}
return false;
}
return true;
}接受答复:
class Solution {
public boolean isPalindrome(int x) {
String s = String.valueOf(x); //n
int l = s.length();
int i = 0;
int j = l - 1;
while (i <= j) {
if (s.charAt(i) != s.charAt(j)) {
return false;
}
i++;
j--;
}
return true;
}
}我错过了什么?
发布于 2022-06-17 18:50:07
在任何情况下,错误的解决方案都返回false,而正确的解决方案只在s.charAt(i) != s.charAt(j)为真时才返回s.charAt(i) != s.charAt(j)。
如果要在第一段代码中跳过return false;,则需要将其移动到else子句中,或者在if子句中使用continue;,以便直接跳到下一个循环迭代。
https://stackoverflow.com/questions/72663555
复制相似问题