首页 > 解决方案 > 在我的回文函数中输入一个空字符串

问题描述

它不会输出错误的陈述。不知道为什么它不会输出正确的答案。

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

当给定一个回文单词时,算法返回“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;
    }
}

标签: javapalindrome

解决方案


你可以用简单的方法做到这一点:

  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;
  }

推荐阅读