Pallindrome in Go
package main
import (
"regexp"
"fmt"
"strings"
)
func main() {
s := "A man, a plan, a canal: Panama"
data := isPalindrome(s)
fmt.Println(data)
}
func isPalindrome(s string) bool {
s = removeSpecialCharacters(s)
fmt.Println(s)
if s== reverseString(s) {
return true
}
return false
}
func removeSpecialCharacters(input string) string {
re := regexp.MustCompile([^a-zA-Z0-9])
result := re.ReplaceAllString(input, "")
return strings.ToLower(result)
}
func reverseString(s string) string {
runes := []rune(s)
for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
runes[i], runes[j] = runes[j], runes[i]
}
return string(runes)
}