给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: “A man, a plan, a canal: Panama”
输出: true
解释:“amanaplanacanalpanama” 是回文串
示例 2:
输入: “race a car”
输出: false
解释:“raceacar” 不是回文串
提示:
1 <= s.length <= 2 * 105
字符串 s 由 ASCII 字符组成
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/valid-palindrome
var isPalindrome = function (s) {
var arr = []
var regx = /^[A-Za-z0-9]*$/;
for (const key of s) {
if (regx.test(key)) {
//取出所有的数字或字母
arr.push(key.toLocaleLowerCase())
}
}
return fn(arr)
//判断是否为回文
function fn(str) {
var center = parseInt(str.length / 2);
for (var i = 0; i < center; i++) {
if (str[i] !== str[str.length - 1 - i]) {
return false;
}
}
return true
};
}