• leetcode每日一题(2020-05-19):680. 验证回文字符串 Ⅱ


    题目描述:
    给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。

    今日学习:
    1.正则表达式

    题解1:前置题目:125.验证回文串

    var isPalindrome = function(s) {
    //调用API
    //var arr = s.replace(/[^w]/g, '').toLowerCase().split('');
    //return arr.join() === arr.reverse().join();
    
    //双指针
        var strArr = s.replace(/[^w]/g, "").toLowerCase().split("");
        var left = 0, right = strArr.length - 1;
        while(left < right){
            if(strArr[left] != strArr[right]){
                return false;
            }
            left++;
            right--;
        }
        return true;
    };
    

    题解2:这次我的思路对了,不过还是没考虑周全,l+1和r+1哪里开始想的是用if,后来参考题解用了或

    //辅助函数
    var validPalindrome = function(s) {
        var l = 0, r = s.length - 1;
        while(l < r){
            if(s[l] != s[r]){
                return isPali(s, l + 1, r) || isPali(s, l, r - 1)
            }
            l++;
            r--;
        };
        return true;
        function isPali(str, l, r) { // 辅助函数
        while (l < r) { // 指针相遇 结束循环
            if (str[l] !== str[r]) { // 一票否决
            return false 
            }
            l++ // 指针挪动,相互逼近
            r--
        }
        return true // 没有遇到不同,返回true
        }
    };
    
  • 相关阅读:
    go语言学习笔记四(函数、包和错误处理)
    objection内存漫游实战
    脱壳工具FRIDA-DEXDump
    jsdom 用法技巧
    关于adb安装指定版本
    ob混淆
    js原型链hook
    js逆向核心:扣代码2
    ssl_logger捕获得物app双向验证数据
    js逆向核心:扣代码
  • 原文地址:https://www.cnblogs.com/autumn-starrysky/p/12917254.html
Copyright © 2020-2023  润新知