题目描述:
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
今日学习:
1.复习正则表达式
2.复习字符串常用API
题解1:正则保留数字字母——>转换成小写字母——>转成数组——>反转数组——>比较
题解2:正则保留数字字母——>转换成小写字母——>转成数组——>双指针左右逼近——>不同直接抛出false
这个时候就要感叹js的好处了,一行就可以解决
var isPalindrome = function(s) {
// let reg = new RegExp(/[^0-9a-zA-Z]/g)
// return s.replace(reg, "").toLowerCase().split("").reverse().join("") == s.replace(reg, "").toLowerCase()
return s.replace(/[^w]/g, "").toLowerCase().split("").reverse().join("") == s.replace(/[^w]/g, "").toLowerCase()
// let reg = new RegExp(/[^w]/g)
// let arr = s.replace(reg, "").toLowerCase().split("")
// let left = 0, right = arr.length - 1
// while(left < right) {
// if(arr[left] == arr[right]) {
// left++
// right--
// }else {
// return false
// }
// }
// return true
};