Assuming you are running Linux and have a list of valid English words in the file /usr/share/dict/words or someplace or something similar.
Assume you have a cellphone with T9 predictive text input.
For those that don't, cellphones have each key overloaded to mean several things. eg. On my Sharp GX-15
2 also means A,B,C
3 also means D,E,F
4 also means G,H,I
5 also means J,K,L
6 = M,N,O
7 = P,Q,R,S
8 = T,U,V
9 = W,X,Y,Z
In T9 mode I can type in 43556 and it only finds one word in its dictionary that can be made with combination {G,H,I}{D,E,F}{J,K,L}{J,K,L}{M,N,O} and that is
HELLO
Which is a lost faster than typing 4433555555666.
How ever, some words like "high", can be entered by just bouncing on one key ... 4444.
Your mission, should you choose to accept, is to write the shortest ruby program that will find the longest word in the dictionary that can be produced by...
* repeatedly typing one key
* Can be produced by just using only two keys.
* Can be produced by just using only three keys.
* Can be produced by just using only four keys.
* ....
John Carter Phone : (64)(3) 358 6639
Tait Electronics Fax : (64)(3) 359 4632
PO Box 1645 Christchurch Email : john.carter@tait.co.nz
New Zealand
Carter's Clarification of Murphy's Law.
"Things only ever go right so that they may go more spectacularly wrong later."
From this principle, all of life and physics may be deduced.