Write a spell checker class 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, since 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 inbetween two adjacent characters

in a word, deleting a single character from a word, and

replacing a character in a word with another character. for an

extra challenge, consider phonetic substitutions as well