Введите пустую строку в моей функции палиндрома - PullRequest
0 голосов
/ 31 января 2019

Не будет выдано ложное утверждение.Не уверен, почему он не выведет правильный ответ.

При тестировании убедитесь, что ваш алгоритм работает в следующих случаях:

Если дано слово, являющееся палиндромом, алгоритм возвращает "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;
    }
}

1 Ответ

0 голосов
/ 31 января 2019

Вы можете сделать это простым способом:

  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;
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...