package main import ( "strings" ) func isPalindromeOld(s string) bool { lower := strings.ToLower(s) arr := make([]byte, 0) for i := 0; i < len(lower); i++ { if (lower[i] >= 'a' && lower[i] <= 'z') || (lower[i] >= '0' && lower[i] <= '9') { arr = append(arr, lower[i]) } } for i, j := 0, len(arr)-1; i < j; i, j = i+1, j-1 { if arr[i] != arr[j] { return false } } return true } func isAlphanum(c byte) bool { lower := c >= 'a' && c <= 'z' upper := c >= 'A' && c <= 'Z' numeric := c >= '0' && c <= '9' return lower || upper || numeric } func isEqual(a, b byte) bool { if a >= 'a' && a <= 'z' { a = a - 'a' + 'A' } if b >= 'a' && b <= 'z' { b = b - 'a' + 'A' } return a == b } // func isPalindrome(s string) bool { // if len(s) == 0 || len(s) == 1 { // return true // } // for beg, end := 0, len(s)-1; beg < end; { // if !isAlphanum(s[beg]) { // beg++ // continue // } // if !isAlphanum(s[end]) { // end-- // continue // } // if isEqual(s[beg], s[end]) { // beg++ // end-- // } else { // return false // } // } // return true // } // func main() { // fmt.Println(isPalindrome("")) // fmt.Println(isPalindrome("How are!! ! rawoh~")) // fmt.Println(isPalindrome("0P")) // }