前言
新的一年,好好学习。
正文
问题来源
本问题来自leetcode上的125题。
问题描述
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama"
输出: true
示例 2:
输入: "race a car"
输出: false
分析:
水题,秒切
func isPalindrome(s string) bool {
b := make([]byte, len(s))
j := 0
for i := 0; i < len(s); i++ {
if (s[i] >= 'a' && s[i] <= 'z') || (s[i] >= '0' && s[i] <= '9') {
b[j] = s[i]
j++
} else if s[i] >= 'A' && s[i] <= 'Z' {
b[j] = s[i] + 32
j++
}
}
i := 0
j = j - 1
for i < j {
if b[i] != b[j] {
return false
}
i++
j--
}
return true
}
总结:
勤思考。
string采用index方式访问,单个存储单元可以直接赋值给byte类型。
结语
不管怎么样好好加油。