它不会输出错误的声明.不确定为什么它不会输出正确的答案.
测试时,请确保您的算法适用于以下情况:
当给出一个回文单词时,算法返回"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;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 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);
}
Run Code Online (Sandbox Code Playgroud)
或者只是添加"|| 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;
}
Run Code Online (Sandbox Code Playgroud)