当前位置: 首页 > article >正文

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

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

题解
  • 双指针:左指针右移过程时跳过非法字符,右指针左移时跳过非法字符。 如果左指针大于等于右指针,表示有效回文;如果两指针所对应的字符如果不等,则不是有效回文。
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
};

http://www.kler.cn/a/153598.html

相关文章:

  • AlmaLinux OS 8.6 下载
  • 如何保护 API 安全
  • pandas库
  • 【容器】Docker打包Linux操作系统迁移
  • 【HuggingFace Transformer库学习笔记】基础组件学习:Tokenizer
  • 软件测试经典面试题分析——软件测试流程(第1天)
  • Leetcode 第 373 场周赛题解
  • 11.28 C++作业
  • Collection的其他相关知识
  • 后端项目操作数据库增删改查-使用MyBatis配置实现数据操作
  • Vue3的reactive、ref、toRef、toRefs用法以及区别
  • 解决VSCode按住Ctrl(or Command) 点击鼠标左键不跳转的问题(不能Go to Definition)
  • 【JavaScript手撕代码】防抖节流
  • nginx配置反向代理及负载均衡
  • 30秒搞定一个属于你的问答机器人,快速抓取网站内容
  • c语言,输入整数n(行数,本例为4),按照如下规则打印数字图片 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16
  • ubuntu系统下搭建本地物联网mqtt服务器的步骤
  • 01-使用Git操作本地库,如初始化本地库,提交工作区文件到暂存区和本地库,查看版本信息,版本切换命令等
  • 【LeetCode:1094. 拼车 | 差分数组】
  • 模板上新|2023年10月DataEase模板市场上新动态