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



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

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作为输入的回文,这个解决方案将如何更改?感谢

如果你得到的只是一个char,那么它本质上是一个回文,因为它的长度是一。

如果您得到一个char[]chars的数组),它将使用与上面完全相同的逻辑,但使用数组方法而不是String方法。所以.length()变成.lengths.charAt(i)变成s[i],依此类推。

或者你的意思是别的?这是一个相当模糊的问题。。。

我认为它看起来像这样(现在在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;
}

最新更新