题目:
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
点击跳转LeetCode-14. 最长公共前缀
示例1:
输入: "A man, a plan, a canal: Panama"
输出: true
解释:"amanaplanacanalpanama" 是回文串
示例2:
输入: "race a car"
输出: false
解释:"raceacar" 不是回文串
提示:
· 1 <= s.length <= 2 * 105
· 字符串 s 由 ASCII 字符组成
解法:
- 先用正则删去字符串中的 非字母、数字 ,并将字符串全变成小写
- 反转字符串
- 比较原字符串和反转字符串是否相等
/**
* @param {string} s
* @return {boolean}
*/
var isPalindrome = function(s) {
const len = s.length;
const str = s.replace(/([^a-zA-Z0-9])/g, '').toLowerCase();
const res = str.split('').reverse().join('');
return str == res ? true : false;
};