题目(难度:简单):
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
入: "A man, a plan, a canal: Panama" 输出: true
输入: "race a car" 输出: false
/** * @param {string} s * @return {boolean} */ var isPalindrome = function (s) { if (!s) return true let _result = true, i = 0, str = s.toLowerCase().match(/[a-z0-9]/g) if (!str || !str.length) return true let len = str.length - 1 while (i < len - i) { if (str[i] === str[len - i]) { i++ } else { return (_result = false) } } return _result }
/** * @param {string} s * @return {boolean} */ var isPalindrome = function (s) { var arr = s .replace(/[^\d^\w]/g, '') .toLowerCase() .split('') return arr.join() === arr.reverse().join() }
/** * @param {string} s * @return {boolean} */ var isPalindrome = function (s) { s = s.replace(/[^0-9a-zA-Z]/g, '').toLowerCase() let n = s.length let left = 0 let right = n - 1 while (left < right) { if (s[left] != s[right]) { return false } left++ right-- } return true }
/** * @param {string} s * @return {boolean} */ var isPalindrome = function (s) { if (s === '') return true s = s.replace(/[^a-zA-Z0-9]/g, '').toLocaleLowerCase() for (let i = 0, j = s.length - 1; i <= j; ) { if (s[i] !== s[j]) { return false } i++ j-- } return true }
本文分享自微信公众号 - 前端小书童(gaowenju_web)
原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。
原始发表时间:2020-06-19
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句