about summary refs log tree commit diff
path: root/scratch/facebook/nearby-words.py
blob: d2fc3cf5cfcc7a9570f1f827ec6b961bac219bb4 (plain) (blame)
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
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'))