问题:验证回文字符串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama"
输出: true
示例 2:
输入: "race a car"
输出: false
js解决办法:
/**
* @param {string} s
* @return {boolean}
*/
// 思路:首先正则去掉符号,然后从中间分开,从外到内依次比较字符
var isPalindrome = function(s) {
var str = s.replace(/[\ |\~|\`|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\-|\_|\+|\=|\||\\|\[|\]|\{|\}|\;|\:|\"|\'|\,|\<|\.|\>|\/|\?]/g,"");
str = str.toLowerCase();
for (var i = 0; i < Math.floor(str.length/2); i++) {
var char = str.substr(i,1);
var char2 = str.substr(str.length-1-i,1);
if (char != char2) {
return false;
}
}
return true;
};
运行结果截图:
执行耗时: