首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码9.回文编号

代码9.回文编号
EN

Stack Overflow用户
提问于 2022-06-17 18:41:31
回答 1查看 114关注 0票数 -3

我正在尝试这样做,将整数转换为字符串。在if子句中,如果我首先使用s.charAt(i) == s.charAt(j),然后使用i++j--,我无法通过input = 121的测试,我得到的是false而不是true。但是如果我把s.charAt(i) != s.charAt(j)放在第一位,那么我就接受了。

错误答案:

代码语言:javascript
复制
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;
    }

接受答复:

代码语言:javascript
复制
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;
    }
}

我错过了什么?

EN

回答 1

Stack Overflow用户

发布于 2022-06-17 18:50:07

在任何情况下,错误的解决方案都返回false,而正确的解决方案只在s.charAt(i) != s.charAt(j)为真时才返回s.charAt(i) != s.charAt(j)

如果要在第一段代码中跳过return false;,则需要将其移动到else子句中,或者在if子句中使用continue;,以便直接跳到下一个循环迭代。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72663555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档