【LeetCode 0125】【双指针】有效回文

https://leetcode.com/problems/valid-palindrome/

题解
  • 双指针:左指针右移过程时跳过非法字符,右指针左移时跳过非法字符。 如果左指针大于等于右指针,表示有效回文;如果两指针所对应的字符如果不等,则不是有效回文。
javascript 复制代码
var isPalindrome = function(s) {
    
    const isAlphaOrNumeric = (c)=> (c >= 'a' && c <='z') || (c >= '0' && c<='9');
    s = s.toLowerCase();
    let [left,right] = [0,s.length-1]
    while( left < right ) {
		// 跳过非法字符
        while(left < right && !isAlphaOrNumeric(s[left]))left ++
        while(right > left && !isAlphaOrNumeric(s[right]) )right --		// 如果左指针等于右指针,表示有效回文
        if( left == right ) {
            return true
        }
        // 如果左指针对应字符 不等于 右指针对应字符,表示无效回文
        if(s[left] != s[right]){
            return false
        }
        left ++;
        right --;
    }
    return true
};
相关推荐
铭哥的编程日记3 分钟前
小企鹅装石头(栈模拟题)
算法
汉堡go5 分钟前
SLAM数学基础1
人工智能·算法·机器学习
qzhqbb5 分钟前
不可检测水印
人工智能·算法
快敲啊死鬼7 分钟前
机试day5
算法·华为od·华为
8Qi88 分钟前
LeetCode热题100--189
c语言·数据结构·c++·算法·leetcode
灰色小旋风8 分钟前
力扣第八题C++ 字符串转换整数
c++·算法·leetcode
@––––––11 分钟前
力扣hot100—系列9—图论
算法·leetcode·图论
pp起床12 分钟前
图论 | part01
算法·深度优先·图论
luckycoding13 分钟前
3676. 碗子数组的数目
算法·游戏·深度优先
灰色小旋风13 分钟前
力扣第十题C++正则表达式匹配
c++·leetcode·正则表达式