aboutsummaryrefslogtreecommitdiff
path: root/challenge-260/zapwai/python/ch-2.py
blob: bdfe08eca0c9ec1cab8f73bcb64b973447e8f339 (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
def seek_word(word, sorts):
    for i in range(len(sorts)):
        if sorts[i] == word:
            return i
    return -1

def L(k, mylist, h):
    if k == 1:
        h[''.join(mylist)] = 1
    else:
        L(k-1, mylist, h)
        for i in range(k-1):
            if k % 2 == 0:
                swap(i, k-1, mylist)
            else:
                swap(0, k-1, mylist)
            L(k-1, mylist, h)
    
def swap(i, j, mylist):
    tmp = mylist[i]
    mylist[i] = mylist[j]
    mylist[j] = tmp

def proc(word):
    perms = {}
    print("Input:", word)
    let = list(word)
    L(len(word), let, perms)
    sorts = sorted(perms.keys())
    print("Output", 1 + seek_word(word, sorts))

proc("CAT")
proc("GOGGLE")
proc("SECRET")