Move-to-front transform 算法
#!/usr/bin/env python
# Move-to-front transform algorithm
def move_to_front(src):
dst = []
index_list = [chr(c) for c in range(ord('a'), ord('z') + 1)]
for c in src:
dst.append(index_list.index(c))
index_list.remove(c)
index_list.insert(0, c)
return dst
def move_to_front_reverse(src):
dst = ""
index_list = [chr(c) for c in range(ord('a'), ord('z') + 1)]
for i in src:
dst += index_list[i]
c = index_list.pop(i)
index_list.insert(0, c)
return dst
if __name__ == '__main__':
src = "bananaaa"
dst = move_to_front(src)
src = move_to_front_reverse(dst)
print src