题目传送: ​​https://leetcode.cn/problems/valid-palindrome/​

运行效率

Leetcode125. 验证回文串_算法


代码如下:

public boolean isPalindrome(String s) {
// 如果在将所有大写字符转换为小写字符、并移除之后,短语正着读和反着读都一样
//剔除掉所有非字母数字字符
s = cleanStr(s).toLowerCase();
int head=0;
int tail=s.length()-1;
while (head<=tail){
char c = s.charAt(head);
char c1 = s.charAt(tail);
if(c!=c1){
return false;
}
head++;
tail--;
}
return true;
}

/**
* //剔除掉所有非字母数字字符
* @param s
* @return
*/
public String cleanStr(String s) {
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c >= '0' && c <= '9') {
stringBuilder.append(c);
}
if (c >= 'a' && c <= 'z') {
stringBuilder.append(c);
}
if (c >= 'A' && c <= 'Z') {
stringBuilder.append(c);
}
}
return stringBuilder.toString();
}