Reference no: EM132336799
Question
A spell checker that stores a set of words, W, in a hash table and implements a function, spellCheck(s), which performs a spell check on the string s with respect to the set of words, W.
If s is in W, then the call to spellCheck(s) returns an iterable collection that contains only s, because it is assumed to be spelled correctly in this case. Otherwise, if s is not in W, then the call to spellCheck(s) returns a list of every word in W that could be a correct spelling of s.
Your program should be able to handle all the common ways that s might be a misspelling of a word in W, including
- swapping adjacent characters in a word;
- inserting a single character in between two adjacent characters in a word;
- deleting a single character from a word; and
- replacing a character in a word with another character.
The input to your program will consist of the name of a text file, and strings of characters manually entered by the user. The text file will contain the set of words, W, one word per line, and should be read in the program when the program starts. The strings of characters input by the user will be used to test the hash table and the spellCheck function. The program will keep running the tests until the user enters the string "quit".
Using classes SpellChecker and HashTable to implement the spell checker and the hash table, respectively
Using UML class diagram that describes your class design.