其他分享
首页 > 其他分享> > 【力扣 074】680. 验证回文字符串 Ⅱ

【力扣 074】680. 验证回文字符串 Ⅱ

作者:互联网

680. 验证回文字符串 Ⅱ

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

 

示例 1:

输入: s = "aba"
输出: true


示例 2:

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


示例 3:

输入: s = "abc"
输出: false

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/valid-palindrome-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

方法一:双指针

class Solution {
public:
    bool validPalindrome(string s) 
    {
        int i = 0, j = s.size() -1;
        while(i <= j)
        {
            if(s[i] != s[j])
            {
                return isPalindrome(s, i+1, j) || isPalindrome(s, i, j-1);
            }
            else
            {
                ++i;
                --j;
            }
        }
        return true;
    }

    bool isPalindrome(string &s, int i, int j)
    {
        while(i <= j)
        {
            if(s[i++] != s[j--])
                return false;
        }
        return true;
    }
};

参考资料

1. 从两侧向中间找到不等的字符,删除后判断是否回文

标签:字符,074,示例,力扣,字符串,true,680,回文
来源: https://www.cnblogs.com/sunbines/p/16308091.html