它不会输出错误的语句。不知道为什么它不会输出正确的答案。
在测试时,请确保您的算法在以下情况下有效:
当给定一个回文词时,算法返回“ true” 当给定不是回文的单词时,算法返回“ false” 给定单词为空字符串时,算法不会崩溃。
public class Palindrome {
public static void main(String[] args) {
String input = "";// Set to test value
char[] phrase = input.toCharArray();
System.out.println(isPalindrome(phrase));
}
public static boolean isPalindrome(char[] input) {
if (input == null)
return false;
int length = input.length;
int c = 0;
while(c <= length/2) {
if(input[c] != input[length - 1 - c])
return false;
c++;
}
return true;
}
}
答案 0 :(得分:5)
您可以轻松地做到这一点:
public static void main(String args[]) {
System.out.println(isPalindrome("redivider"));
System.out.println(isPalindrome("normal"));
}
public static boolean isPalindrome(String check) {
return new StringBuilder(check).reverse().toString().equalsIgnoreCase(check);
}
或仅添加“ || input.length == 0”
public static boolean isPalindrome(char[] input) {
if (input == null || input.length == 0) return false;
int length = input.length;
int c = 0;
while (c <= length / 2) {
if (input[c] != input[length - 1 - c]) return false;
c++;
}
return true;
}