blob: ed91d0841fb6062b6cc0d10fa93f41b8ffe6b6b2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
|
#lang racket
(define/contract (is-palindrome s)
(-> string? boolean?)
(define clean-string
(string-downcase (string-replace s #rx"[^A-Za-z0-9]" "")))
(string-prefix? (apply string-append (map string (reverse (string->list clean-string))))
(substring clean-string
0
(ceiling (/ (string-length clean-string) 2)))))
(is-palindrome "A man, a plan, a canal: Panama")
|