检查String是否为Palindrome(使用char []输入而不是字符串)

时间:2013-12-11 20:34:54

标签: java string palindrome arrays

我知道这个问题的解决方案:

bool isPalindrome(string s) {
  int n = s.length();
  for (int i=0;i<(n / 2) + 1;++i) {
     if (s.charAt(i) != s.charAt(n - i - 1)) {
         return false;
     }
  }

  return true;
}

但是我想知道如果字符串是使用char[]作为输入而不是string的回文,这个解决方案将如何改变?感谢

2 个答案:

答案 0 :(得分:1)

如果你得到的只是一个char,它通常是一个回文,因为它本身就是长度为一。

如果你得到一个char[]char数组,它将使用与上面完全相同的逻辑,但使用数组方法而不是String方法。因此.length()变为.lengths.charAt(i)变为s[i],等等。

或者你的意思是其他什么?这是一个非常模糊的问题......

答案 1 :(得分:0)

我认为它看起来像这样(现在在Java中)

// boolean - not bool.
public static boolean isPalindrome(char[] s) {
  int n = s.length;                      // get the array length.
  for (int i = 0; i < (n / 2) + 1; ++i) {
    if (s[i] != s[n - i - 1]) {          // access the characters at their positions.
      return false;
    }
  }
  // must be a palindrome.
  return true;
}