Skip to content

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 搞定,看了一下官方题解比较正式会考虑字符严重问题

参考题解