feat: palindrome
This commit is contained in:
30
pkg/valid_palindrome/main.go
Normal file
30
pkg/valid_palindrome/main.go
Normal file
@@ -0,0 +1,30 @@
|
||||
package valid_palindrome
|
||||
|
||||
import (
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var notAlphanumeric = regexp.MustCompile(`[^a-zA-Z0-9]`)
|
||||
|
||||
func KeepAlphanumeric(text string) string {
|
||||
return notAlphanumeric.ReplaceAllString(text, "")
|
||||
}
|
||||
|
||||
func IsPalindrome(text string) bool {
|
||||
scrubbed := strings.ToLower(KeepAlphanumeric(text))
|
||||
|
||||
start := 0
|
||||
end := len(scrubbed) - 1
|
||||
|
||||
for start < end {
|
||||
if scrubbed[start] != scrubbed[end] {
|
||||
return false
|
||||
}
|
||||
|
||||
start++
|
||||
end--
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
Reference in New Issue
Block a user