给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama"
输出: true
示例 2:
输入: "race a car"
输出: false
func isPalindrome(s string) bool {
}双指针,忽略字母的大小写,就全部tolower,判断只就下a-z然后判断回文
func isPalindrome(s string) bool {
s = strings.ToLower(s)
array := make([]rune,0)
for _,v := range s {
if (v >= '0' && v <= '9') || (v >= 'a' && v <= 'z') {
array = append(array,v)
}
}
rstr := string(array)
return rstr == reverse(rstr)
}
// 反转string
func reverse(str string) string {
tmp := []byte(str)
i := 0
j := len(str) - 1
for i < j {
tmp[i], tmp[j] = tmp[j], tmp[i]
i++
j--
}
return string(tmp)
}