在我的回文函数中输入一个空字符串

Oli*_*ick 1 java palindrome

它不会输出错误的声明.不确定为什么它不会输出正确的答案.

测试时,请确保您的算法适用于以下情况:

当给出一个回文单词时,算法返回"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)