LeetCode125-验证回文串

LeetCode125-验证回文串

双指针实现

先将字符串转成小写,然后左右两个指针,分别向中间移动,判断字符是否是a-z和0-9,不是就移动指针,直到两边都是合法的字符,再进行比较

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public boolean isPalindrome(String s) {
int len = s.length();
if (len == 0) return true;
s = s.toLowerCase();
int l = 0;
int r = len - 1;
while (l < r) {
while (l < r&&!isAlphaNum(s.charAt(l))) l++;
while (l < r&&!isAlphaNum(s.charAt(r))) r--;
if (s.charAt(l) != s.charAt(r)) {
return false;
}
l++;
r--;
}
return true;
}

private boolean isAlphaNum(char c) {
if (c >= 'a' && c <= 'z' || c >= '0' && c <= '9') {
return true;
}
return false;
}

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!