blob: 5f13143c121b3b84cf3b4a3fb5f22e966641e163 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#lang racket
(define keyboard-rows (list "qwertyuiop"
"asdfghjkl"
"zxcvbnm"))
(define keyboard-row-sets
(for/list ([row keyboard-rows])
(list->set (map string (string->list row)))))
(define/contract (find-words words)
(-> (listof string?) (listof string?))
(define word-checks
(for/list ([w words])
(define word-set
(list->set (map string (string->list (string-downcase w)))))
(if (for/or ([row keyboard-row-sets])
(subset? word-set row))
w
'())))
(filter-not empty? word-checks))
(find-words '("Hello" "Alaska" "Dad" "Peace"))
|