Problem: 125. 验证回文串
思路
把符合要求的字符提取到StringBuilder里,再进行StringBuilder的回文判断,注意StringBuilder为空的话返回true,注意09符合要求需要加入StringBuilder,注意AZ加入StringBuilder时+32转小写。
解题方法
把符合要求的字符提取到StringBuilder里,再进行StringBuilder的回文判断,注意StringBuilder为空的话返回true,注意09符合要求需要加入StringBuilder,注意AZ加入StringBuilder时+32转小写。
复杂度
-
时间复杂度: O(1.5n),n为s长度
-
空间复杂度: O(n),n为s长度
Code
class Solution {
public boolean isPalindrome(String s) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if(c>='A'&&c<='Z'){
sb.append((char)(c+32));
} else if (c>='a'&&c<='z') {
sb.append(c);
} else if (c >= '0' && c <= '9') {
sb.append(c);
}
}
if(sb.length()==0){
return true;
}
int left =0;
int right = sb.length()-1;
while (left<right){
if(sb.charAt(left)!=sb.charAt(right)){
return false;
}
left++;
right--;
}
return true;
}
}