来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/valid-palindrome
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama"
输出: true
示例 2:
输入: "race a car"
输出: false
解答
大概步骤:
- 获取有效的字符串,我们利用正则去匹配字母和数字,因为忽略大小写,所以我们转成小写
- 然后利用 split('') 把字符串分割成数组,再用数组的 reverse() 去反转,再用 join(‘’) 去拼接
- 最后进行比较
/**
* @param {string} s
* @return {boolean}
*/
var isPalindrome = function(s) {
if (s.length === 1) return true
const str = s.replace(/[^a-zA-Z0-9]/g, "").toLowerCase()
const strReverse = str.split('').reverse().join('')
return str === strReverse
};