Level 27: Reverse
What's the code?
- Python (long):
- >>> type(code)
<type 'str'>
>>> def mangle(code):
... aphrodite = [ord(hades) for hades in code]
... dionysus = enumerate(aphrodite)
... aphrodite = [hades^apollo for apollo,hades in dionysus]
... artemis = "".join(chr(apollo) for apollo in aphrodite)
... def poseidon(hades):
... if len(hades) < 2: return hades
... return hades[1] + poseidon(hades[2:]) + hades[0]
... apollo = poseidon(artemis)
... return apollo
>>> mangle(code)
'oj`ugmacjee' - Scala:
- scala> println(code.getClass())
class java.lang.String
scala> code.zipWithIndex.map{case (a,b)=>(a^b).toChar}.grouped(2).foldRight(""){
| (c,d)=>c match{case Vector(e,f) => f+d+e; case Vector(g) => d+g}}
res33: String = oj`ugmacjee
- Python (short):
- >>> def mangle(code):
... a = lambda b: b if len(b)<2 else b[1]+a(b[2:])+b[0]
... return a("".join(chr(ord(c)^d) for (d,c) in enumerate(code)))