leetcode 680. 验证回文字符串 Ⅱ

https://leetcode-cn.com/problems/valid-palindrome-ii/submissions/

方法二:贪心算法
如果字符串的起始字符和结束字符相同(即 s[0]==s[s.length-1]),则内部字符是否为回文(s[1], s[2], ..., s[s.length - 2])将唯一地确定整个字符串是否为回文。

算法:
假设我们想知道 s[i],s[i+1],...,s[j] 是否形成回文。如果 i >= j,就结束判断。如果 s[i]=s[j],那么我们可以取 i++;j--。否则,回文必须是 s[i+1], s[i+2], ..., s[j] 或 s[i], s[i+1], ..., s[j-1] 这两种情况。

复杂度分析

时间复杂度:O(N)O(N)。其中 NN 是字符串的长度。检查两个子串是否为回文串的检查时间都是 O(N)O(N)。
空间复杂度:O(1)O(1),仅使用了指针。

你可能感兴趣的:(leetcode)