在Java中检查字符串是否只有一个回文字符不匹配

问题描述 投票:0回答:1

我必须编写一个接受字符串的布尔函数,并检查字符串在Java中是否是回文。

这是我的代码

    static boolean isPalindrome(String input) 
{ 
    int i = 0;
    last = input.length() - 1; 
    while (i < last) { 
        if (input.charAt(i) != input.charAt(last)) 
            return false; 
        i++; 
        last--; 
    } 
    return true; 
}

我想将此部分添加到我的代码中,但我坚持认为,如果只有一个字符不匹配,我应该将其视为有效回文。

示例结果:

“book” ​-> true
“refer” ​-> true
“” ​​-> true
java palindrome
1个回答
0
投票

添加boolean标志以跟踪是否已经找到不匹配的字符对:

static boolean isPalindrome(String input) 
{ 
    boolean firstMismatch = true;
    int i = 0;
    last = input.length() - 1; 
    while (i < last) { 
        if (input.charAt(i) != input.charAt(last)) {
            if (firstMismatch) {
                firstMismatch = false;
            } else {
                return false; 
            }
        }
        i++; 
        last--; 
    } 
    return true; 
}
© www.soinside.com 2019 - 2024. All rights reserved.