Zbudowanie golfowego kodera rot13 jest zbyt łatwe, ponieważ litery są w tej samej kolejności w obszarze znaków ASCII. Spróbujmy zamiast tego silnika rot32.
Twoim zadaniem jest zbudowanie funkcji, która pobiera ciąg Base64 jako dane wejściowe i zwraca ten sam ciąg, ale z każdą literą obróconą o 32 symbole w stosunku do oryginału (w zasadzie z pierwszym bitem odwróconym).
Łańcuch kodujący base64, który ma być użyty w tym problemie, ma 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/
znak dopełniający =
. Zapobiega to rozwiązaniom, które w innym przypadku użyłyby lub zaimportowałyby wbudowaną bibliotekę Base64, w której zwykle łańcuchy zaczynają się A
zamiast 0
.
Example inputs and outputs:
> rot32("THE+QUICK+BROWN+FOX+JUMPS+OVER+THE+LAZY+DOG=")
nb8ukoc6eu5liqhu9irudogjmuip8lunb8uf4tsu7ia=
> rot32("NB8UKOC6EU5LIQHU9IRUDOGJMUIP8LUNB8UF4TSU7IA=")
h5Eoei6C8oBfckboFclo7iadgocjEfoh5Eo9AnmoDc4=
> rot32("Daisy++daisy++give+me+your+answer+true/I+/+m+half+crazy++all+for+the+love+of+you")
7GOY2uuJGOY2uuMO/KuSKu2U+XuGTY0KXuZX+KvcuvuSuNGRLuIXG32uuGRRuLUXuZNKuRU/KuULu2U+
Wygrywa najkrótszy program w dowolnym języku.
Odpowiedzi:
CJam, 24 bajty
Wypróbuj online.
Jak to działa
źródło
Powłoka Bash / Unix, 29
Wejście ze STDIN, wyjście na STDOUT.
źródło
Perl, 41
Po prostu prosta transliteracja . Odczytuje ze STDIN, wysyła do STDOUT:
Wypróbuj tutaj.
źródło
-p
i-e
, aby pozbyć się znaków$_=<>;
i;print
.CJam,
45 41 38 29 2726 bajtówOdczytuje ciąg do zaszyfrowania ze STDIN
Jak to działa :
Wypróbuj online tutaj
źródło
Python, 178
Jest to niepoznakowana implementacja referencyjna ostatniego miejsca w Pythonie, której można użyć do przetestowania własnej implementacji.
źródło
GolfScript (
4140 bajtów)Demo online
Składają się na to dwie części: tłumaczenie jest odmianą ostatniej techniki wymienionej w mojej
tr
wskazówce w GolfScript , a drugą częścią jest budowanie ciągów, które wykorzystują ciąg znaków0:a{A[
jako tablicę wartości char i fałd, aby zamienić je w zakresy znaków. Zwróć uwagę na użycie32/(*
do zbudowania przetłumaczonego łańcucha przez wstawienie pierwszych 32 znaków między drugie 32 znaki i znak, który tłumaczymy.źródło
python, 69
testy
źródło
LiveScript, 91
LiveScript, 50
Jeśli ciąg jest dozwolony jako drugi argument.
źródło
JavaScript 164
źródło