Skip to content

Offers the most relevant correction of mispelled word

Notifications You must be signed in to change notification settings

dizpers/spellcheck

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Spellcheck

Original Specification

Write a program that reads a large list of English words (e.g. from /usr/share/dict/words on a unix system) into memory, and then reads words from stdin, and prints either the best spelling suggestion, or "NO SUGGESTION" if no suggestion can be found. The program should print ">" as a prompt before reading each word, and should loop until killed.

Your solution should be faster than O(n) per word checked, where n is the length of the dictionary. That is to say, you can't scan the dictionary every time you want to spellcheck a word.

For example:

> sheeeeep
sheep
> peepple
people
> sheeple
NO SUGGESTION

The class of spelling mistakes to be corrected is as follows:

  • Case (upper/lower) errors: "inSIDE" => "inside"
  • Repeated letters: "jjoobbb" => "job"
  • Incorrect vowels: "weke" => "wake"
  • Any combination of the above types of error in a single word should be corrected (e.g. "CUNsperrICY" => "conspiracy").

If there are many possible corrections of an input word, your program can choose one in any way you like. It just has to be an English word that is a spelling correction of the input by the above rules.

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%