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")
|