fork(1) download
  1. a = lambda n:((n+1)&0b11111111)
  2. e = lambda n:((n&0b00010101)<<2)|((n&0b10101000)>>2)|((n&0b01000000)<<1)|((n&0b00000010)>>1)
  3. u = lambda n:((n+0b11111111)&0b11111111)
  4.  
  5. metaexprs = [[]]*256
  6.  
  7. for metaindex,exprs in enumerate(metaexprs):
  8. exprs = [""]*256
  9. exprs[metaindex] = "w" if metaindex else "z"
  10.  
  11. length = 1
  12.  
  13. while not all(exprs):
  14. for index,expr in enumerate(exprs):
  15. if len(expr) == length:
  16. candidate_a = a(index)
  17. candidate_e = e(index)
  18. candidate_u = u(index)
  19. if (not exprs[candidate_a]) or (length+1 < len(exprs[candidate_a])):
  20. exprs[candidate_a] = expr+"a"
  21. if (not exprs[candidate_e]) or (length+1 < len(exprs[candidate_e])):
  22. exprs[candidate_e] = expr+"e"
  23. if (not exprs[candidate_u]) or (length+1 < len(exprs[candidate_u])):
  24. exprs[candidate_u] = expr+"u"
  25. length += 1
  26.  
  27. metaexprs[metaindex] = exprs
  28.  
  29. print("Method 1:")
  30. for char in "Hello, world!\r\n":
  31. print(metaexprs[0][ord(char)]+"w")
  32.  
  33. print("")
  34.  
  35. print("Method 2:")
  36. for prev,curr in zip("\x00Hello, world!\r", "Hello, world!\r\n"):
  37. candidate1 = metaexprs[ord(prev)][ord(curr)]+"w"
  38. candidate1 = candidate1[1:] if candidate1[0]=="w" else candidate1
  39. candidate2 = metaexprs[0][ord(curr)]+"w"
  40. print(sorted([candidate1,candidate2],key=len)[0])
Success #stdin #stdout 0.47s 9984KB
stdin
Standard input is empty
stdout
Method 1:
zaeeeaeeew
zaeeaeeaeaw
zuueeueueaw
zuueeueueaw
zuueeueew
zuueeaeeeaw
zaeeeeew
zuueeueeeew
zuueeueew
zuueeueeaaaw
zuueeueueaw
zaeeaeeaew
zaeeeeeaw
zaeeuuuw
zaeaaaaaaw

Method 2:
zaeeeaeeew
uueeaw
aaaaaaaw
w
aaaw
eaaew
aeaaw
uueeeeuw
ueeeeaw
aaaw
ueeuew
eeaw
uueueuw
eaw
uuuw