【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
};
相关推荐
咋吃都不胖lyh5 分钟前
Haversine 距离算法详解(零基础友好版)
线性代数·算法·机器学习
FPGA小c鸡9 分钟前
FPGA通信基带算法完全指南:从理论到实战的DSP加速方案
算法·fpga开发
@Aurora.24 分钟前
优选算法【专题三:二分查找算法】
算法
soldierluo25 分钟前
向量与向量数据
人工智能·算法·机器学习
a努力。40 分钟前
字节跳动Java面试被问:一致性哈希的虚拟节点和数据迁移
java·开发语言·分布式·算法·缓存·面试·哈希算法
VT.馒头1 小时前
【力扣】2622. 有时间限制的缓存
javascript·算法·leetcode·缓存·typescript
Hcoco_me1 小时前
大模型面试题71: DPO有什么缺点?后续对DPO算法有哪些改进?
人工智能·深度学习·算法·自然语言处理·transformer·vllm
mit6.8241 小时前
dfs|bfs建图|hash贪心
算法
零售ERP菜鸟1 小时前
安全与合规的确定性保障:构建“内置安全”的弹性防线
大数据·人工智能·职场和发展·创业创新·学习方法·业界资讯
独自破碎E1 小时前
【新视角】输出二叉树的右视图
leetcode