Sha256: 80a4188bb500e20502f806712424d8b153a34c193f4c0b0b31b0933ee218e098
Contents?: true
Size: 490 Bytes
Versions: 127
Compression:
Stored size: 490 Bytes
Contents
from itertools import cycle, chain def fence_pattern(rails, size): zig_zag = cycle(chain(range(rails), range(rails - 2, 0, -1))) return zip(zig_zag, range(size)) def encode(msg, rails): fence = fence_pattern(rails, len(msg)) return ''.join(msg[i] for _, i in sorted(fence)) def decode(msg, rails): fence = fence_pattern(rails, len(msg)) fence_msg = zip(msg, sorted(fence)) return ''.join(char for char, _ in sorted(fence_msg, key=lambda item: item[1][1]))
Version data entries
127 entries across 127 versions & 1 rubygems