我知道这个问题的解决方案:
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
的回文,这个解决方案将如何改变?感谢
答案 0 :(得分:1)
如果你得到的只是一个char
,它通常是一个回文,因为它本身就是长度为一。
如果你得到一个char[]
(char
的数组,它将使用与上面完全相同的逻辑,但使用数组方法而不是String方法。因此.length()
变为.length
,s.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;
}