Returns true if the given string is a palindrome, false otherwise.

Use strings.Fields(), strings.Join() and strings.ToLower() to get the normalized, lowercase string without spaces.
Use range to iterate over the string and compare each rune to the one in the reversed string.


import "strings"

func IsPalindrome(s string) bool {
    v := strings.ToLower(strings.Join(strings.Fields(s), ""))
    for i := range v {
        if v[len(v)-i-1] != v[i] {
            return false
    return true


IsPalindrome("taco cat") // true