题目描述
https://leetcode-cn.com/problems/valid-palindrome-ii/
解
package main
// 指针分别指向头尾
// 先判断是否相等
// 不相等左位移 是否相等
// 不相等右位移 是否相等
// 不相等 返回false
// 相等 左右各前进一位
func validPalindrome(s string) bool {
r := s
if len(r) == 0 || len(r) == 1 {
return false
}
var left, right = 0, len(r) - 1
for left < right {
if r[left] == r[right] {
left++
right--
} else {
return CheckRome(s, left+1, right) || CheckRome(s, left, right-1)
}
}
return true
}
func CheckRome(s string, l, r int) bool {
for l < r {
if s[l] == s[r] {
l++
r--
continue
}
return false
}
return true
}
思路
看了题解后的方法,自己的方法一直是超限的!
网友评论