
Jumbled Letters

You may have seen the following meme text on Internet (click the text if you want to read its "normal" version):
Aoccdrnig to a rsceearh at Cmabrigde Uinervtisy, it deosn't mttaer in waht oredr the ltteers in a wrod are, the olny iprmoetnt tihng is taht the frist and lsat ltteer be at the rghit pclae. The rset can be a toatl mses and you can sitll raed it wouthit porbelm. Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe.
According to a research at Cambridge University, it doesn't matter in what order the letters in a word are, the only important thing is that the first and last letter be at the right place. The rest can be a total mess and you can still read it without problem. This is because the human mind does not read every letter by itself but the word as a whole.
Well, there are elements of truth in this. Here is a very interesting article from the real Cambridge University researcher, who is breaking down the meme and explain the phenomena.
Let's try to evaluate a level of jumbling. In this mission you are given two words - normal and jumbled version. If the jumbled one is not a version of a normal or rule is not followed, you function must return -1
. For the totally same looking words return 0
, of course. Otherwise, exclude first and last characters (they are not jumbled according to the rule) and return an average distance (rounded to 2 digits) between normal position of a character and its jumbled position.
If there are two or more same letters in a word, consider that the first appearance of a character in a normal version is equivalent to the first appearance of that character in a jumbled version etc.
Look at the example.
Input: Two strings (str).
Output: Float number (float).
Examples:
assert jumbled("vehicle", "vheclie") == 1.2 assert jumbled("checkpoint", "cehkipont") == -1 assert jumbled("doctor", "doctor") == 0 assert jumbled("research", "rsceearh") == 1.67