Intro
Of course I’m using my Raspberry Pi. I installed a free dictionary (sudo apt-get install wamerican).
I wanted to practice python, but to not go crazy, so I cheated with some grooming with simple shell commands, e.g.,
$ egrep ‘^[a-z]{5}$’ /usr/share/dict/words > words
That plucks out all the five-letter words and stores them in a local file called words. The original dictionary had about 100,000 “words.” There are about 4000 five-letter words left.
I called the python program v.py. Here it is
import sys,os,re
input = sys.argv[1]
output = []
for character in input:
number = ord(character) - 96
output.append(number)
#print(output)
sum=0
for character in input:
number = ord(character) - 96
sum += number
#print(sum)
newsum = 0
ends = ''
if sum == 51:
#print(input)
for i in input[3:]:
number = ord(i) - 96
newsum += number
ends = ends + i
#print(i,number,newsum,ends)
if newsum < 27:
newl = chr(newsum+96)
newword = re.sub(ends,newl,input)
print(input,newword)
I ran it like this:
$ cat words|while read line; do python3 v.py $line >> all-possibilities; done
This plucks out all the five-letter words whose characters add up to 51, and adds the value of the last two letters and creates a new word from them. replacing the last two letters with the new letter.
Drumroll
The results are in.
$ cat all-possibilities
allay allz avoid avom bergs berz beset besy blocs blov bombs bomu broke brop bused busi comas comt condo cons cribs criu crude crui cured curi dines dinx elite eliy erect erew fates fatx files filx flies flix fluff flul ... thick thin
Now, go write your own program. I will share the answer when it's too late to submit - it comes towards the end of the list. It sticks out like a sore thumb - nothing else comes close. So if you just persist you'll see it.
Conclusion
I learned a teensy bit of python, my motivation being to solve the current npr puzzle. And it worked! But my program was surprisingly slow. I guess I wrote it in an inefficient manner.