-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUserInterface.py
55 lines (44 loc) · 1.64 KB
/
UserInterface.py
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
def encode(string):
decodeString = ""
decodeStringFrequency = []
for character in string:
if not character in decodeString:
decodeString += character
decodeStringFrequency += [1]
else:
decodeStringFrequency[decodeString.index(character)] += 1
newStrArr = list(decodeString)
while not decodeStringFrequency == sorted(decodeStringFrequency):
for i in range(len(decodeStringFrequency) - 1):
if decodeStringFrequency[i] > decodeStringFrequency[i + 1]:
decodeStringFrequency[i], decodeStringFrequency[i+1] = decodeStringFrequency[i+1], decodeStringFrequency[i]
newStrArr[i], newStrArr[i+1] = newStrArr[i+1], newStrArr[i]
newStrArr.reverse()
decodeString = "".join(newStrArr)
i = 1
array = []
for character in string:
array += [decodeString.index(character)]
Message = 0
for Power in range(len(array)):
Message += array[Power] * (len(decodeString) ** Power)
print(f"{decodeString}\n{Message}")
def decode(decodeString, Message):
string = decodeString
Message = int(Message)
def digitsequence(a, b):
results = ""
while True:
results += string[(a % b)]
if a < b: break
a //= b
return results
print(digitsequence(Message, len(string)))
while True:
userResponse = input("Encode or Decode: ")
if userResponse == "Encode":
encode(input("Enter Message: "))
elif userResponse == "Decode":
decode(input("Enter Decode String: "), input("Enter Message: "))
else:
print("That Wasn't a Valid Response")