Untitled
unknown
plain_text
a year ago
2.3 kB
4
Indexable
with open("input.txt", "r") as f: data = [i for i in f.read().strip().split("\n")] # Getting string to check givenStr = data[0] # Places to store info typingKey = {} checkingWords = [] lettersStr = data[4] letterKeys = lettersStr.split(";") # Append to typingKey dict (d is data, don't wanna use "data" as a var twice tho) for d in letterKeys: letter, neighboringLetters = [i.lower() for i in d.split(":")] tNLetters = tuple(neighboringLetters.split(",")) typingKey[letter] = tNLetters # Finding the checking words and appending canRead = True lineNum = 5 while canRead: word = data[lineNum] if (word == "ZZZZZ"): canRead = False else: checkingWords.append(word) lineNum += 1 # Making a list of every word in string wordsInStr = givenStr.split(" ") finalStr = [] # Correcting misspelled words for word in wordsInStr: # If word is correct, we don't gotta worry about it if word not in checkingWords: # Just used b/c I'm doing 2 loops at once, and # "break" will only break me out of one wordCorrected = False # Keeping track of what the original word was, don't # Wanna change 2 letters in the word and screw everything up origWord = word for i, letter in enumerate(word): # Made word a list so I could use the pop and insert functions word = list(word) if (wordCorrected): break # Getting tuple from the dictionary (letters to check) lettersToCheck = typingKey[letter] for cLetter in lettersToCheck: # Pop and insert and you got a new version of the word word.pop(i) word.insert(i, cLetter) newWord = "" for ch in word: newWord += ch # Check again for correct word if newWord in checkingWords: wordCorrected = True finalStr.append(newWord) break word = origWord else: finalStr.append(word) # Printing each word in corrected string for w in finalStr: print(w, end=" ") print()
Editor is loading...
Leave a Comment