125. 验证回文串(一般)

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

说明:本题中,我们将空字符串定义为有效的回文串。

示例 1:

输入: "A man, a plan, a canal: Panama"
输出: true

示例 2:

输入: "race a car"
输出: false

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-palindrome

思路:

双指针

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Solution {
public boolean isPalindrome(String s) {
//双指针
if(s.length()==0){
return true;
}
int low = 0,high = s.length()-1;
while (low<high){
//头尾
//不是字母和数字
if(!Character.isLetterOrDigit(s.charAt(low))){
low++;
}else if(!Character.isLetterOrDigit(s.charAt(high))){
high--;
}else{
//判断是否相等
if(Character.toLowerCase(s.charAt(low))!=Character.toLowerCase(s.charAt(high))){
return false;
}
low++;
high--;
}
}
return true;
}
}