125. 验证回文串
解题过程
INFO
题目链接 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 字母和数字都属于字母数字字符 给你一个字符串 s,如果它是 回文串 ,返回 true ;否则,返回 false
javascript
/**
* @link https://leetcode.cn/problems/valid-palindrome/
* @title 125. 验证回文串
* @description 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。
* 字母和数字都属于字母数字字符。
* 给你一个字符串 s,如果它是 回文串 ,返回 true ;否则,返回 false
* @param {string} s
* @return {boolean}
*/
// 解法一
// 思路:第一步:获取将所有大写字符转换为小写字符、并移除所有非字母数字字符之后的新字符
// 第二步:获取第一步反转后的短语
// 第三步进行对比即可
var isPalindrome = function (s) {
const newStr = s.toLowerCase().replace(/[^A-Za-z0-9]/g, '')
const strReverse = newStr.split('').reverse().join('')
return newStr === strReverse
}
const result = isPalindrome('A man, a plan, a canal: Panama') // true
console.log(result)
解题感受
自己写的比较简单,用正则和字符串、数组 API 搞定,看了一下官方题解比较正式会考虑字符严重问题