about summary refs log tree commit diff
path: root/zanagrams/nearletters.py
blob: e592e186dba2769dbfdf1b3aeadb939fbaf32099 (plain)
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
#!/usr/bin/env python3
import sys

def main(argv):
    badpairs = set()
    goodpairs = set()
    letters = argv[1].strip()
    #print(letters, file=sys.stderr)
    #print(len(letters), file=sys.stderr)
    if len(letters) == 16:
        for x in range(0,16):    
            l = letters[x]
            for y in [[1,4,5], [1,3,4,5], [1,3,4,5], [3,4]][x%4]:
                if x+y > 15:
                    continue
                l2 = letters[x+y]
                goodpairs.add(l + l2)
                goodpairs.add(l2 + l)

        for x in range(0,16):
            l = letters[x]
            for x2 in range(x,16):
                l2 = letters[x2]
                if not (l + l2) in goodpairs:
                    badpairs.add(l + l2)
                if not (l2 + l) in goodpairs:
                    badpairs.add(l2 + l)

    print(goodpairs, file=sys.stderr)
    print(badpairs, file=sys.stderr)
    while 1:
        line = sys.stdin.readline()
        line = line.strip()
        if not line:
            break;
        noprint = False
        line2 = line.casefold()
        for pair in badpairs:
            if pair in line2:
                noprint = True
                break
        if line and not noprint:
            print(line, end='\n')

if __name__ == '__main__':
    main(sys.argv)