Valid Palindrome II
题目描述
验证回文字符串2
给定一个非空字符串s
,最多删除一个字符,判断是否能成为回文字符串。
示例
输入:"abca"
输出:true
解法
解法一:双指针
时间复杂度:
O(n)
空间复杂度:
O(1)
func validPalindrome(s string) bool {
left, right := 0, len(s) - 1
for left < right {
if s[left] == s[right] {
left++
right--
continue
}
flag := true
for i, j := left+1, right; i < j; i, j = i+1, j-1 {
if s[i] != s[j] {
flag = false
break
}
}
if flag {
return flag
}
flag = true
for i, j := left, right-1; i < j; i, j = i+1, j-1 {
if s[i] != s[j] {
flag = false
}
}
return flag
}
return true
}
Last updated
Was this helpful?