LeetCode 680.验证回文串Ⅱ
验证回文串Ⅱ
给你一个字符串 s
,最多可以从中删除一个字符。
请你判断 s
是否能成为回文字符串:如果能,返回 true
;否则,返回 false
。
输入:s = "aba" |
方法:递归
算法思路:
- 构造判断是否为回文串方法
isPalindrome
,使用双指针法 - 对字符串进行双指针遍历,如果双指针所指的字符不同,则判断去除当前指针位置字符(左指针或右指针)的后续字符串是否为回文串
代码实现:
class Solution { |
复杂度分析:
时间复杂度:,其中是字符串的长度。判断整个字符串是否是回文字符串的时间复杂度是,遇到不同字符时,判断两个子串是否是回文字符串的时间复杂度也都是。
空间复杂度:。只需要维护有限的常量空间。
参考
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Abacteria的学习小站!