题目:
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明: 本题中,我们将空字符串定义为有效的回文串。
解法:
1、注意大小写的判断方法不需要记住ANSCII码
2、注意大小写转换使用标准库strings.ToLower()
import "strings"
func isPalindrome(s string) bool {
left, right := 0, len(s) - 1
for left < right {
if !validate(s[left]) {
left ++
continue
}
if !validate(s[right]) {
right --
continue
}
if strings.ToLower(string(s[left])) != strings.ToLower(string(s[right])) {
return false
}
left ++
right --
}
return true
}
func validate(n byte)bool{
if 'A' <= n && n <= 'Z' || 'a' <= n && n <= 'z' || '0' <= n && n <= '9' {
return true
}
return false
}