LeetCode第680题:验证回文字符2(简单)

LeetCode第680题:验证回文字符2(简单)

    题目:给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。 解题思路:双指针的做法
class Solution {
          
   
    public boolean validPalindrome(String s) {
          
   
        int left = 0;
        int right = s.length()-1;
        int time = 1;
        while(left < right){
          
   
            if(s.charAt(left)==s.charAt(right)){
          
   
                left++;
                right--;
            }else{
          
   
                if(left + 1 == right) return true;
                if(time == 1){
          
   
                    if(s.charAt(left+1)==s.charAt(right) && s.charAt(left+2)==s.charAt(right-1)){
          
   
                        left++;
                        time--;
                    }else if(s.charAt(left)==s.charAt(right-1) && s.charAt(left+1)==s.charAt(right-2)){
          
   
                        right--;
                        time--;
                    }else{
          
   
                        return false;
                    } 
                }else{
          
   
                    return false;
                }
                
            }
        }
        return true;
    }
}
    题解做法:思想差不多,代码很简洁。
经验分享 程序员 微信小程序 职场和发展