Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solver:
- def __init__(self, data, num):
- self.data = data
- self.num = int(num) - 1
- self.data_length = len(data)
- def decode_BWT(self):
- counter = {}
- transform = []
- for ch in self.data:
- counter[ch] = 0
- transform.append(0)
- for ch in self.data:
- counter[ch] += 1
- sum = 0
- k_list = list(counter.keys())
- k_list.sort()
- for ch in k_list:
- sum = sum + counter[ch]
- counter[ch] = sum - counter[ch]
- for i in range(0, self.data_length):
- transform[counter[self.data[i]]] = i
- counter[self.data[i]] += 1
- j = transform[self.num]
- ans = ''
- for i in range(0, self.data_length):
- ans += self.data[j]
- j = transform[j]
- return ans
- if __name__ == '__main__':
- n = input()
- d = input()
- s = Solver(d, n)
- ans = s.decode_BWT()
- print(ans)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement