class Solution {
public:
bool validPalindrome(string s) {
}
};
680. 验证回文字符串 Ⅱ
给定一个非空字符串 s
,最多删除一个字符。判断是否能成为回文字符串。
示例 1:
输入: s = "aba" 输出: true
示例 2:
输入: s = "abca" 输出: true 解释: 你可以删除c字符。
示例 3:
输入: s = "abc" 输出: false
提示:
1 <= s.length <= 105
s
由小写英文字母组成相似题目
原站题解
golang 解法, 执行用时: 20 ms, 内存消耗: 6.5 MB, 提交时间: 2021-06-21 16:08:50
func validPalindrome(s string) bool { low, high := 0, len(s) - 1 for low < high { if s[low] == s[high] { low++ high-- } else { flag1, flag2 := true, true // 排除高位, 剩余是否回文 for i, j := low, high - 1; i < j; i, j = i + 1, j - 1 { if s[i] != s[j] { flag1 = false break } } // 排除低位, 剩余是否回文 for i, j := low + 1, high; i < j; i, j = i + 1, j - 1 { if s[i] != s[j] { flag2 = false break } } return flag1 || flag2 } } return true }