Leetcode——验证回文字符串

题目描述:

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

解题思路

  • 使用双指针,一个指向头,一个指向尾,如果两者不相同了,则可以将尾部的往前挪一个,或者首部的往后挪一个,判断这两种情况
  • 这两种已经相当于删除了一个字符,如果不是回文字符串,说明删除一个字符满足不了要求

class Solution {
    public boolean validPalindrome(String s) {
        int i = -1;
        int j = s.length();
        while(++i<--j){
            if(s.charAt(i)!=s.charAt(j))
                return isPalindrome(s,i+1,j)||isPalindrome(s,i,j-1);
        }
        return true;

    }
    public boolean isPalindrome(String s,int i,int j){
        while(i

你可能感兴趣的:(Leetcode)