### Python - Bytes: 4435, False +ves: 0, False -ves: 0 = Score: 4435 import base64,zlib,sys;T=eval(zlib.decompress(base64.b64decode("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")));t=T;f=1 for c in sys.argv[1]: C=c.lower() if c in t:t=t[c] elif f and C in t:f=0;t=t[C] else:sys.exit(1) if""not in t:sys.exit(1) This is a python program that expects one command line argument, the `word`. From the list of words I constructed a [trie][1], zlib'ed the argument and finally encoded it with base64. If the word is in the trie, the program exits with status `0`, otherwise it exits with status `1`. I wanted to create a spell checker that has 100% accuracy. Also, I am abusing the fact, that if python does not have a final `sys.exit()` call, the exit status is `0`. I could substantially decrease the number of characters, by not encoding the zlib'ed string (specifically, zlib'ed string is 1113 characters shorter than base 64 encoded), but I wanted to have a code that you can copy/paste directly. ### Examples $pyton check.py colour $echo $? 0 $pyton check.py Colour $echo $? 0 $pyton check.py coLoUr $echo $? 1 $pyton check.py color $echo $? 1 $pyton check.py Color $echo $? 1 $pyton check.py I $echo $? 0 $pyton check.py i $echo $? 1 The trie is traversed with characters of the `word`, each time getting a new trie from the key of current character. If the word is in the trie, then a `""` must be present in the final trie. ### Ungolfed version import base64, zlib, sys TRIE = eval(zlib.decompress(base64.b64decode("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"))) trie = TRIE first = True for character in sys.argv[1]: CHARACTER = character.lower() if character in trie: trie = trie[character] elif first and CHARACTER in trie: first = False trie = trie[CHARACTER] else: sys.exit(1) if "" not in trie: sys.exit(1) sys.exit(0) ### Construction of base 64 encoded, zlib'ed trie f = file("dictionary","r") END = "" TRIE = {} def addWord(word): trie = TRIE for character in word: trie = trie.setdefault(character, {}) trie.setdefault(END, 0) for line in f.readlines(): l = line.replace("\n", "") addWord(l) import zlib, base64 compressed = zlib.compress(str(TRIE).replace(" ", ""), 9) print base64.b64encode(compressed) [1]: https://en.wikipedia.org/wiki/Trie