Permalink
Cannot retrieve contributors at this time
Fetching contributors…
| // Copyright © 2016 Alan A. A. Donovan & Brian W. Kernighan. | |
| // License: https://creativecommons.org/licenses/by-nc-sa/4.0/ | |
| // See page 305. | |
| //!+ | |
| // Package word provides utilities for word games. | |
| package word | |
| import "unicode" | |
| // IsPalindrome reports whether s reads the same forward and backward. | |
| // Letter case is ignored, as are non-letters. | |
| func IsPalindrome(s string) bool { | |
| var letters []rune | |
| for _, r := range s { | |
| if unicode.IsLetter(r) { | |
| letters = append(letters, unicode.ToLower(r)) | |
| } | |
| } | |
| for i := range letters { | |
| if letters[i] != letters[len(letters)-1-i] { | |
| return false | |
| } | |
| } | |
| return true | |
| } | |
| //!- |