Needle in a Needlestack
The answer to this puzzle is a word found in the SOWPODS word list. Once you've downloaded a copy of that file, you can create an array containing every entry with the following code:
const fs = require("fs")
words = fs.readFileSync("./sowpods.txt").toString().split("\n")
with open("sowpods.txt") as f:
words = f.read().split("\n")
The following statements about the answer word are all true.
- If you remove the last three letters, the result is another word on the SOWPODS list.
- The word contains no double letters.
- The word matches the regular expression
/^.*(.).*\1.*$/ (JS style) or
r"^.*(.).*\1.*$" (Python-style) .
- The score for playing the word in Scrabble (not counting any blanks or special squares) is 10.
- The word does not end in a vowel.
- There is no consecutive block of three letters in the answer that is either in alphabetical order or reverse alphabetical order. (Another way to say this if ASCII(char2) - ASCII(char1) is positive, ASCII(char3) - ASCII(char2) must be negative. DUST is allowed under this rule, but STUD isn't, as "STU" is in alphabetical order.)
- If the word is written in lowercase and the ASCII values of each character are concatenated together to form one very large number, that number mod 9 equals 6.
- If the word is written in lowercase and the ASCII values of each character are concatenated together to form one very large number, and that number were interpreted as a UPC code, the check digit would have to be 4.
- The word's first letter and last letter are different.