欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LeetCode 680 Valid Palindrome II(左右指针)

程序员文章站 2022-06-04 16:17:38
...

题目链接:点击这里
LeetCode 680 Valid Palindrome II(左右指针)
题意:给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。

class Solution {
public:
    bool isPalindrome(string s, int left, int right)
    {
        int i = left, j = right;
        while(i<j)
        {
            if(s[i]!=s[j])   return false;
            i++;
            j--;
        }
        return true;
    }

    bool validPalindrome(string s) {
        int i = 0, j = s.length()-1;
        while(i<j)
        {
            if(s[i]==s[j])
            {
                i++;
                j--;
            }
            else
            {   //或者删除s[i],或者删除s[j],看剩下的字符串是否是回文串
                return isPalindrome(s, i+1, j) || isPalindrome(s, i, j-1);
            }
        }
        return true;
    }
};
相关标签: 尺取法