【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
};
相关推荐
zander2582 分钟前
4. 寻找两个正序数组的中位数:用分割点代替合并
数据结构·算法
Kisorge13 分钟前
【电机控制器】 基于STSPIN32G4的FOC控制
stm32·嵌入式硬件·算法
Elivs27 分钟前
RMSNorm函数
人工智能·算法·机器学习
tudousisi2221 小时前
P4447 [AHOI2018初中组] 分组 题解复盘
算法
SNAKEpc121381 小时前
OpenGL(十一)- 变换管线
c语言·c++·算法·矩阵·图形渲染
饼饼学习空间智能3 小时前
遥操作数据能否提升机器人自主化水平?详解模仿学习、仿真放大与Sim2Real闭环
人工智能·算法
间歇性努力持续性发呆的野生快乐选手3 小时前
dfs回溯,bfs枚举,完全背包
c++·算法·深度优先·宽度优先
嵌入式冰箱4 小时前
2026年华数杯B题完整解题思路与建模方案
算法
郝学胜_神的一滴4 小时前
干货版《算法导论》17:双数极值配对与卡牌手牌编码最优解
数据结构·算法
nike0good4 小时前
Codeforces Round 1101 (Div. 2) 题解
算法