34 lines
763 B
Python
34 lines
763 B
Python
|
def nearby_chars(c):
|
||
|
keyboard = [
|
||
|
"qwertyuiop",
|
||
|
"asdfghjkl",
|
||
|
"zxcvbnm",
|
||
|
]
|
||
|
|
||
|
for row in keyboard:
|
||
|
for i in range(len(row)):
|
||
|
if row[i] == c:
|
||
|
result = set()
|
||
|
if i + 1 < len(row):
|
||
|
result.add(row[i + 1])
|
||
|
if i - 1 >= 0:
|
||
|
result.add(row[i - 1])
|
||
|
return result
|
||
|
|
||
|
def is_word(word):
|
||
|
words = {
|
||
|
"hello",
|
||
|
}
|
||
|
return word in words
|
||
|
|
||
|
def nearby_words(x):
|
||
|
result = set()
|
||
|
for i in range(len(x)):
|
||
|
for c in nearby_chars(x[i]):
|
||
|
candidate = x[0:i] + c + x[i+1:]
|
||
|
if is_word(candidate):
|
||
|
result.add(candidate)
|
||
|
return result
|
||
|
|
||
|
print(nearby_words('gello'))
|