zoukankan      html  css  js  c++  java
  • [leetcode]680. Valid Palindrome II有效回文II(可至多删一原字符)

    Given a non-empty string s, you may delete at most one character. Judge whether you can make it a palindrome.

    Example 1:

    Input: "aba"
    Output: True
    

    Example 2:

    Input: "abca"
    Output: True
    Explanation: You could delete the character 'c'.

    思路:

    代码:

     1 class Solution {
     2     public boolean validPalindrome(String s) {
     3         int l = 0;
     4         int r = s.length()-1;
     5         while(l < r){
     6             if(s.charAt(l) != s.charAt(r)){
     7                 // try to delete a left side char || delete a right side char
     8                 return isPalin(s, l+1,r) || isPalin(s, l,r-1);
     9             }else{
    10                 l++;
    11                 r--;
    12             }       
    13         }
    14         return true;
    15         
    16     }
    17         
    18    // helper function to judge valid palindrome      
    19    private boolean isPalin(String s , int l, int r){   
    20        while(l < r){
    21            if(s.charAt(l++)!=s.charAt(r--)) return false;
    22        }
    23        return true;
    24    }
    25 }
  • 相关阅读:
    快速幂,矩阵乘法,矩阵快速幂
    关于xor
    数位dp
    tarjan,割边,桥,割点
    RMQ,ST表,dp
    逆序对,树状数组,归并排序
    线段树
    dp,LCS
    清北 游
    青蛙的约会(扩展欧几里得)
  • 原文地址:https://www.cnblogs.com/liuliu5151/p/9808300.html
Copyright © 2011-2022 走看看