GivenString = "GGCTACTAACATGCCTTTCAACTTCCAGGGTTACTGTCAGGGTACTTATGCTCGCATTTACAAGGGCCCTACTCACTGTCAGAAGGGCTTTGGTCTTCAGGGCAATTCAAAAGAGAACCTACCGATCAATCCATCAGAGAACGAGCTTGGATGTGATACCCCTCACGCAGAAACGGCAGTTTGCATGTGGCGCGACAAAGCACCGCTTACGGAATGGATGTCGGGTGTCCGGGATACACTACTGGCTATAACATTCTGTATCAAGGCTCGGGTCGTATGGGTTAGGATGAGGTAGATCTAGAAGCTTTTCTTCCAGGGCCTCTTTTCTACGAGCGAGCCGCGATACACTCAGAATTGCAGCGTACCCTTTCTTGGATTTAACCAAATAAGCATTACCATCTAAACCATAGATATCAATAAACTGAAATGACACCTGCCGTCGGTTCTACCCGATGCGAATGGTTGAATCCGACGCAATTGACGATTCCAGGCCGGGGCACTATGCAGACGCAAAACCAAAATTTGTAATACATGCGCGGGATGCGGTGTAGAGATCTTTAGACGCTAGCCGCTCGGAAAATGTGTTGGTTTTGCCCGTCAGGGCCCTACTCAGGGTCATGGTAATATTGATTAGACGGGTCCCTGCTTCTCGGGCCACCTGGGTTAGGGTTCCAGCCCGTCCAATAGCTAGGTTTTTGATTATAATGCGGGTTACCCGGGTTATACTGACACTGCCCGCTACTATAAAATTCTCCACTGTCATCGTAACCCGAATCTCTTTGATTCTCACTTACTGTCGACGGCTCGGTTCTTCCAAGCACTGCA"
print(len(GivenString))

"""
Explanation: Deciphering a puzzle from a company's hiring page I came across
A friend asked me to look at a puzzle at the hiring page of a company he was applying to. Here is my attempt to the problem. Haven't seen the problem before, so I am not sure if I solved it completely, but sharing my attempt here.
Information Provided
A zipped folder containing a text file and 2 images with following content.

A string of characters (A, T, C and G)
<img src="CipherAndKey/DNAFragment.png" width="500">
A wheel with some decoding information
<img src="CipherAndKey/KEY-01.jpg" width="500">
A key that indicates use of enigma
<img src="CipherAndKey/KEY-02.jpg" width="500">

Step 1. Decoding codons
Looking at the string, we can immediately observe a message encrypted in language of nucleotides (A, T, C and G). I happen to know a sequence of three DNA or RNA nucleotides corresponds to a specific amino acid.
End of explanation
"""


import string

charlist = [chr(9658), chr(9608)]+ \
    list(string.ascii_uppercase)+ \
    list([str(x) for x in range(10)])+ \
    list("~!@#$%^&*()-+{}\/<>,.?:;` ")
    
x = 'TCAG'
symbollist = [k+j+i for k in x for j in x for i in x]

mapping = dict(zip(symbollist, charlist))

"""
Explanation: Provided string is a multiple of three. Seems promising. Lets build a hashmap out of the wheel provided. What seems apparent is outmost letter is encoded by sequence of letters from center to periphery (or vice versa).
End of explanation
"""


DecodedString = ''
for i in range(0,len(GivenString),3):
    decode = mapping[GivenString[i:i+3]]
    DecodedString += decode

DecodedString

"""
Explanation: Now that we have a hashmap. Lets try to decode the string provided.
End of explanation
"""


