-
Notifications
You must be signed in to change notification settings - Fork 0
/
2019-scrable.rb
37 lines (31 loc) · 1.01 KB
/
2019-scrable.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# Scrabble by Programming Praxis
#
# Today's task is based on the game of Scrabble.
#
# Your task is to write a program to find the dictionary words of length 2 to 7
# that can be formed from the letters Q O F T H E A. When you are finished, you
# are welcome to read or run a suggested solution, or to post your own solution
# or discuss the exercise in the comments below.
# words from: http://www.mieliestronk.com/corncob_lowercase.txt
# First pass
def scrable
regex = /^[qofthea]+$/
STDIN.read
.split(/[\n\r]+/)
.select do |w|
w.chars.size >= 2 &&
w.chars.size <= 7 &&
w =~ regex
end
end
# Second pass after seeing this:
# https://programmingpraxis.com/2019/02/22/scrabble/#comment-79466
# Globules said
# February 23, 2019 at 4:29 AM
# $ egrep -i '^[qofthea]{2,7}$' /usr/share/dict/words | column -c 80
def scrable2
STDIN.read.split(/[\n\r]+/).select { |l| l =~ /^[qofthea]{2,7}$/i }
end
puts scrable2
# test like this:
# cat /usr/share/dict/words | ruby scrable.rb | column -c 80