lc-go/solutions/1/q125/solution.go
2025-12-23 18:39:11 +09:00

32 lines
504 B
Go

package q125
func isAlphanumeric(c byte) bool {
return c >= '0' && c <= '9' ||
c >= 'a' && c <= 'z'
}
func toLower(c byte) byte {
if c >= 'A' && c <= 'Z' {
return 'a' + c - 'A'
}
return c
}
func isPalindrome(s string) bool {
conv := make([]byte, 0, len(s))
for i := range len(s) {
c := toLower(s[i])
if isAlphanumeric(c) {
conv = append(conv, c)
}
}
for i := range len(conv) / 2 {
if conv[i] != conv[len(conv)-1-i] {
return false
}
}
return true
}
var _ = isPalindrome