题目
- 验证回文字符串 Ⅱ
给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。
示例 1:
输入: “aba”
输出: True
示例 2:
输入: “abca”
输出: True
解释: 你可以删除c字符。
注意:
字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。
Me
package mainimport "fmt"func validPalindrome(s string) bool {var i,j inti = 0j = len(s) - 1a, 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") )}