验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama"
输出: true
解释:"amanaplanacanalpanama" 是回文串
1
2
3
2
3
/**
* @param {string} s
* @return {boolean}
*/
var isPalindrome = function(s) {
s= s.toLowerCase()
let l = 0
let r = s.length - 1
let isValiStr = /^[0-9a-zA-Z]{1}$/
while(l <= r) {
while(!isValiStr.test(s[l]) && l < s.length) {
l++
}
while(!isValiStr.test(s[r]) && r > -1) {
r--
}
if(s[l] === s[r]) {
l++
r--
} else {
return false
}
}
return true
};
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
27
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
27
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/valid-palindrome