OneCompiler

Pallindrome in Go

1749

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)
}