判断题目给出的字符串是不是回文,仅考虑字符串中的字母字符和数字字符,并且忽略大小写
例如:"nowcoder Is Best tsebsi: redoc won"是回文
"race a car"不是回文
注意:
你有没有考虑过字符串可能为空?这是面试时应该提出的一个好问题。
针对这个问题,我们定义空字符串是回文
思路:遍历字符串判断首位对应位置是否相等即可,注意空字符串
package main
import "strings"
/**
*
* @param s string字符串
* @return bool布尔型
*/
func isPalindrome( s string ) bool {
// write code here
if s == "" {
return true
}
var r []rune
for _, item := range s {
if (item >= 'a' && item <= 'z') || (item >= 'A' && item <= 'Z') || (item >= '0' && item <= '9') {
r = append(r, rune(item))
}
}
realStr := strings.ToLower(string(r))
r1 := []rune(realStr)
for i, j := 0, len(r1)-1; i < j; i, j = i+1, j-1 {
r1[i], r1[j] = r1[j], r1[i]
}
return realStr == string(r1)
}