我需要一种算法来验证一个字符串是否是回文(该字符串可以是由大写或小写字母、空格等组成的命题)。在Java中实现,速度要尽可能快。我有一个样例:
bool isPalindrome(string s) {
int n = s.length();
s = s.toLowerCase();
for (int i = 0; i < (n / 2) + 1; ++i) {
if (s.charAt(i) != s.charAt(n - i - 1)) {
return false;
}
}
return true;
}
我使用 .toLowerCase()
函数将字符串转换成小写字母,但我不知道它对执行时间有多大影响。
同时,我也不知道如何以有效的方式解决标点符号和单词之间的空格问题。