LeetCode 680. 验证回文字符串 Ⅱ [Valid Palindrome II (Easy)]

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

LeetCode 680. 验证回文字符串 Ⅱ [Valid Palindrome II (Easy)]

来源:力扣(LeetCode)

 

回文字符串,是指具有左右对称特点的字符串,例如 "abcba" 就是一个回文字符串。

这种判断方式刚好相当于一次跳过机会。

class Solution {
public:
    bool validPalindrome(string s) {
        
        for (int index1 = 0, index2 = s.size() - 1; index1 <= index2; ++index1, --index2)
        {
            if (s[index1] != s[index2])  //此处相当于一次跳过机会
                return isPalindrome(s, index1 + 1, index2) || isPalindrome(s, index1, index2 - 1);
        }
        return true;
    }

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

 

上一篇:leecode 140:palindrome-number


下一篇:LeetCode 234 - Palindrome Linked List (Easy)