zoukankan      html  css  js  c++  java
  • 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
        }
    };
    
  • 相关阅读:
    MongoDB启动及用户名密码设置
    matplotlib热图
    Python--多进程--01
    python--进程
    python--pipe
    sklearn--feature extract--人脸识别
    Python--pool
    scikit-learn---PCA(Principle Component Analysis)---KNN(image classifier)
    pycharm 添加注册码
    django第三方库
  • 原文地址:https://www.cnblogs.com/autumn-starrysky/p/12917254.html
Copyright © 2011-2022 走看看