Problem: 125. 验证回文串
文章目录
- 思路
- 复杂度
- Code
思路
👨🏫 参考题解
Character.isLetterorDigit(char c)
:判读字符 c 是否是字母或者数字
Character.toLowerCase(char c)
:将字符 c 转换为小写字母
复杂度
时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( 1 ) O(1) O(1)
Code
class Solution {
public boolean isPalindrome(String s) {
int l = 0;
int r = s.length() - 1;
while(l < r )
{
while(l < r && !Character.isLetterOrDigit(s.charAt(l)))//跳过无效字符
l++;
while(l < r && !Character.isLetterOrDigit(s.charAt(r)))//跳过无效字符
r--;
if(Character.toLowerCase(s.charAt(l)) != Character.toLowerCase(s.charAt(r)))
return false;
l++;
r--;
}
return true;
}
}