Created
February 28, 2019 05:32
-
-
Save xsthunder/9b90faa75b7aa3f00a8aca2b6099d18c to your computer and use it in GitHub Desktop.
encode string to number and decode number
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class To_Number: | |
def __init__(self, start_of_index = 0, ): | |
self.end_of_index = start_of_index | |
self.start_of_index = start_of_index | |
self.dict={} | |
self.decode_dict={} | |
def add(self, ele): | |
if ele not in self.dict: | |
self.dict[ele] = self.end_of_index | |
self.decode_dict[self.end_of_index] = ele | |
self.end_of_index= self.end_of_index+ 1 | |
def encode(self, ele): | |
self.add(ele) | |
return self.dict[ele] | |
def encode_array(self, array): | |
return list(map(self.encode, array)) | |
def decode(self, number): | |
assert isinstance(number, int) | |
assert number >= self.start_of_index | |
assert number < self.end_of_index | |
return self.decode_dict[number] | |
def decode_array(self, number_array): | |
return list(map(self.decode, number_array)) | |
to_number = To_Number() | |
items_number = list(map(to_number.encode_array, items)) | |
to_number.decode_array(items_number[3]) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment