我知道这个问题的解决方案:
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[]
(char
s的数组),它将使用与上面完全相同的逻辑,但使用数组方法而不是String方法。所以.length()
变成.length
,s.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;
}