zoukankan      html  css  js  c++  java
  • 力扣(LeetCode)验证回文字符串II 个人题解

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

    示例 1:

    输入: "aba"
    输出: True
    

    示例 2:

    输入: "abca"
    输出: True
    解释: 你可以删除c字符。
    

    注意:

    1. 字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。

    使用双指针,用指针移动模拟删除一个字符,具体实现如下所示

    代码如下:

    class Solution {
        public boolean validPalindrome(String s) {
            int left = 0;
            int right = s.length() - 1;
            
            while (left < right) {
                if (s.charAt(left) != s.charAt(right)) {
                    return isPalindrome(s,left+1,right)||isPalindrome(s,left,right-1);
                }
                left++;
                right--;
            }
            return true;
        }
        
        boolean isPalindrome(String s,int l,int r) {
            while(l<r)
            {
                if(s.charAt(l) != s.charAt(r))
                    return false;
                l++;
                r--;
            }
            return true;
        }
    }
  • 相关阅读:
    docker运行springboot应用
    docer运行node
    Git添加仓库
    安装docker-compose
    centos安装docker
    Centos设置软件源
    ubuntu安装docker
    ubuntu安装阿里云镜像地址
    docker加速器配置
    配置Spring发送邮件
  • 原文地址:https://www.cnblogs.com/axiangcoding/p/10433376.html
Copyright © 2011-2022 走看看