125.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package main
  2. import (
  3. "strings"
  4. )
  5. func isPalindromeOld(s string) bool {
  6. lower := strings.ToLower(s)
  7. arr := make([]byte, 0)
  8. for i := 0; i < len(lower); i++ {
  9. if (lower[i] >= 'a' && lower[i] <= 'z') || (lower[i] >= '0' && lower[i] <= '9') {
  10. arr = append(arr, lower[i])
  11. }
  12. }
  13. for i, j := 0, len(arr)-1; i < j; i, j = i+1, j-1 {
  14. if arr[i] != arr[j] {
  15. return false
  16. }
  17. }
  18. return true
  19. }
  20. func isAlphanum(c byte) bool {
  21. lower := c >= 'a' && c <= 'z'
  22. upper := c >= 'A' && c <= 'Z'
  23. numeric := c >= '0' && c <= '9'
  24. return lower || upper || numeric
  25. }
  26. func isEqual(a, b byte) bool {
  27. if a >= 'a' && a <= 'z' {
  28. a = a - 'a' + 'A'
  29. }
  30. if b >= 'a' && b <= 'z' {
  31. b = b - 'a' + 'A'
  32. }
  33. return a == b
  34. }
  35. // func isPalindrome(s string) bool {
  36. // if len(s) == 0 || len(s) == 1 {
  37. // return true
  38. // }
  39. // for beg, end := 0, len(s)-1; beg < end; {
  40. // if !isAlphanum(s[beg]) {
  41. // beg++
  42. // continue
  43. // }
  44. // if !isAlphanum(s[end]) {
  45. // end--
  46. // continue
  47. // }
  48. // if isEqual(s[beg], s[end]) {
  49. // beg++
  50. // end--
  51. // } else {
  52. // return false
  53. // }
  54. // }
  55. // return true
  56. // }
  57. // func main() {
  58. // fmt.Println(isPalindrome(""))
  59. // fmt.Println(isPalindrome("How are!! ! rawoh~"))
  60. // fmt.Println(isPalindrome("0P"))
  61. // }