每日一题:验证回文串

验证回文串

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。

字母和数字都属于字母数字字符。

思路:

  • 给你一个字符串 s,如果它是 回文串 ,返回 true ;否则,返回 false 。
  • 先用正则表达式处理字符串,替换 /[^a-zA-Z0-9]/g 所有非字母和数字,/\s/g 所有空格为""
  • 然后统一转为大写或者小写
  • 设2个指针ij,一个从0开始,一个从处理后的字符串最后开始
  • while迭代,一个增加一个减少,当他们碰头的时候结束迭代
  • s[i]!=s[j]就返回false跳出迭代,全部迭代完都相等返回true
/**
 * @param {string} s
 * @return {boolean}
 */
var isPalindrome = function(s) {
    
    
    s=s.replace(/[^a-zA-Z0-9]/g,"").replace(/\s/g,"").toLowerCase();
    let i=0,j=s.length-1;
    while(i<j){
    
    
        if(s[i]!=s[j]){
    
    
           return false;
        }
        i++;
        j--;
    }
    return true;
};

猜你喜欢

转载自blog.csdn.net/m0_46672781/article/details/135249560