它不会输出错误的语句。不确定为什么它不会输出正确的答案。
测试时,请确保您的算法在以下情况下有效:
当给定一个回文词时,算法返回“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;
}
}
最佳答案
你可以用简单的方法做到这一点:
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;
}
关于java - 在我的回文函数中输入一个空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54449568/