Skip to content

Latest commit

 

History

History
39 lines (33 loc) · 916 Bytes

125.验证回文串.md

File metadata and controls

39 lines (33 loc) · 916 Bytes

描述

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

说明:本题中,我们将空字符串定义为有效的回文串。

示例 1:

输入: "A man, a plan, a canal: Panama"
输出: true

示例 2:

输入: "race a car"
输出: false

解一 [双指针]

思路

  1. 首先利用正则表达式将s中的非数字,字母替换为空后全部转成小写或大写
  2. 使用双指针判断首位字符是否相同

代码

var isPalindrome = function(s) {
    s = s.replace(/[^a-zA-Z0-9]/g,'').toLowerCase();
    let left = 0, right = s.length-1;
    while(left < right) {
        if(s[left] !== s[right]){
            return false;
        }
        left++;
        right--;
    }
    return true;
};