Showing results for 
Search instead for 
Did you mean: 

Weekly Challenge

Solve the challenge, share your solution and summit the ranks of our Community!
New content is available in Academy! You may need to clear your browser cache for an optimal viewing experience

Challenge #177: Ham Hamlet

I was getting so frustrated doing the back and forth with trial and error along with rerunning my workflow so many times. I ended up just scrapping that method and artificially creating a bunch of possible combinations so that I could get 26 of the 104 mappings.
Alteryx Partner
177. Data Analysis.PNG
A difficult one! I didn't really know where to start, apart from finding what a space was. I got the idea then from @T_Willins to look at shorter words and guess characters from there. Then, I sorted the words by count to find the most common words like 'the', 'and', 'we' etc

Took a long time but enjoyed the problem solving!
My solution is still incomplete and does not use an automated approach such as counting characters as I was completely thrown off by the pig latin. The only way I managed to figure it out was through trying to take a logical approach:
I found out that the second character only had four possible combinations (excluding upper and lower case).
From the position and frequency of the upper case variants, I concluded that these were not an integral part of the decode.
I couldn't get the 'A' or the 'Y' characters to agree to their actual mappings and the decode only gave nonsense. As the numbering of the left hand encoded letter began at 2 rather than 1, I decided that this might also be a clue, so bumping the left character 'a' to position '1'. 
From here manual verification of the words that appeared and adjustment allowed me to get some semblance of real words, however the only checks I was actually certain about were the header and footer as they have less flowery language.

Overall, I think there was more luck than judgement involved here! With more fine tuning, most letters would be discovered, and further investigation would have revealed an identical ordering to each character subset (assuming that I chose to begin at the correct character!), so making adjustment possible.
Alteryx Certified Partner

My solution with lots of trial and error.


Alteryx Certified Partner

Couldn't get there on my own and after a peek at the solutions I thought @Claje's 'brute force' approach was incredibly smart, so did something along those lines.


Screenshot 2019-10-12 at 19.39.24.png



Forgot to attach my workflow to my posted solution above.


Hi! Here my solution


Honestly, when you published this challenge 2-3 months ago I said 'omg, this is no for me, this is for CIA or so...' haha

I think I've found a really easy way to solve it. I didn't look at any solution, I promise. And it didn't take more than 8 hours for sure.

So, first at all, in any text any language most of the words are separated by spaces or by punctuation marks and spaces, but spaces are always as "a" and "y" decoded characters were always followed by a 'ks' coded pair...I just suposed that 'ks' meant actually " ".

Second, I splitted text with that " " decoded character:


Third, once we have splitted the text, we have (more or less) words, so we can build them and...why don't we count and order them descending?

clipboard_image_1.png (picture shows the words this point, imagine I haven't already decoded)

...and why not looking for some help? let's look for the most common words in English here:

Fourth, as we can identify most of the most common words, we can identify very fast 15-20 characters through those words (and, to, the, of, in, you, that....). Now, why don't we try to read the text?

Now is fun, because at the beginning of the text I recognised the words 'project gutemberg' and 'shakespeare' :).....and after that a text where I could read literally 'for the use of anyone anywhere at no cost' I googled 'project gutenberg shakespeare hamlet' (as the challenge is called Ham Hamlet):


...and voilá! I should have click 'Voy a tener suerte' (spanish version for I'm Feeling Lucky) haha. It results that if you click on 'read this book online: html' you can find a text which first paragraph is exactly the same text I I've found a


After that, I just wrote some other letters in the table till I had 26 correct decodings
Alteryx Partner

well that was properly challenging

I worked out that ks was a space as it was always preceded by 'ay', and then used this to break everything out into words. Then I found 'the' as the most common 3 letter word. I assumed that the case of the second letter gave the case of the real letter, rather than changing the real letter. From there I used the letters I had to work out other letters. After a while I spotted a pattern in the encoding, which I could use to quickly fill in the gaps
Very manual, but quite satisfying to chip away at such a hard problem bit by bit
Challenge 177.png
Alteryx Partner
Challenge 177_NW.PNG


Man - this was an interesting one!


First started out by trying to create a word frequency for Hamlet translated into Pig Latin.   Interestingly - it turned out that this gave the first 6 letters, but did not match to anything after this.

Accidentally, after feeding this through an append tool, created a brute-force approach (like @Claje ) and it unlocked the translation.


So I spent the rest of the time doing a pig-latin decoder which is case sensitive - works relatively well with only a few issues that I didn't commit the time to ferret out.


Result - decode with capitalisation.jpg



Here's the solution that decodes the pig-latin with case sensitivity - you can see that the process is to break into words, then progressively decode (and remove) each word - then do a case fix; and finally replace in the original text.

Solution Part 1.jpgSolutionPart2.jpg