题目
- 验证回文字符串 Ⅱ
给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。
示例 1:
输入: “aba”
输出: True
示例 2:
输入: “abca”
输出: True
解释: 你可以删除c字符。
注意:
字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。
Me
package main
import "fmt"
func validPalindrome(s string) bool {
var i,j int
i = 0
j = len(s) - 1
a, b := justice(s,i,j)
i, j = justice(s, a+1, b)
if i < j && s[i] != s[j]{
i, j = justice(s, a, b-1)
if i < j {
return false
}
}
return true
}
func justice(s string, i,j int) (int, int) {
for int32(s[i]) == int32(s[j]) && i < j {
j--
i++
}
return i, j
}
func main() {
fmt.Println( validPalindrome("aebcba") )
fmt.Println( validPalindrome("abcbea") )
fmt.Println( validPalindrome("tcaac") )
fmt.Println( validPalindrome("ebcbbececabbacecbbcbe") )
fmt.Println( validPalindrome("aguokepatgbnvfqmgmlcupuufxoohdfpgjdmysgvhmvffcnqxjjxqncffvmhvgsymdjgpfdhooxfuupuculmgmqfvnbgtapekouga") )
fmt.Println( "false~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
//fmt.Println( validPalindrome("a") )
fmt.Println( validPalindrome("dedmued") )
fmt.Println( validPalindrome("abc") )
fmt.Println( validPalindrome("dedmeadeecccceedaedued") )
}