From c15e8d34f1f58e1c2d8ab034942ae6c8e6f8338e Mon Sep 17 00:00:00 2001 From: kanna5 Date: Tue, 9 Dec 2025 13:01:23 +0900 Subject: [PATCH] impl: q125 --- solutions/q125/solution.go | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 solutions/q125/solution.go diff --git a/solutions/q125/solution.go b/solutions/q125/solution.go new file mode 100644 index 0000000..e9b33fd --- /dev/null +++ b/solutions/q125/solution.go @@ -0,0 +1,32 @@ +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