forked from AnasImloul/Leetcode-Solutions
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVowel Spellchecker.py
51 lines (49 loc) · 1.65 KB
/
Vowel Spellchecker.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
class Solution:
def spellchecker(self, wordlist: List[str], queries: List[str]) -> List[str]:
n = len(wordlist)
d = {}
sd = {}
vd = {}
cd = {}
for i in range(n):
d[wordlist[i]] = i
s = wordlist[i].lower()
if s not in sd:sd[s] = i
m = len(wordlist[i])
tmp = []
emp = ""
for j in range(m):
if wordlist[i][j] in 'aeiouAEIOU': tmp.append(j)
else:emp+=wordlist[i][j].lower()
cd[i] = emp
vd[i] = tmp
ans = []
for word in queries:
word_lower = word.lower()
if word in d:
ans.append(word)
continue
elif word_lower in sd:
ans.append(wordlist[sd[word_lower]])
continue
else:
vow_word = []
con_word = ""
m = len(word)
for i in range(m):
if word[i] in 'aeiouAEIOU' : vow_word.append(i)
else: con_word += word[i].lower()
if vow_word == []:
ans.append("")
continue
flag = False
for i in range(n):
vow_tmp = vd[i]
con_tmp = cd[i]
if vow_tmp == vow_word and con_tmp == con_word:
ans.append(wordlist[i])
flag = True
break
if flag == True:continue
ans.append("")
return ans