Zostałeś zatrudniony przez rząd Północnej Dakoty do szyfrowania komunikacji stanowej. Napisz dwa programy, jeden do szyfrowania wiadomości, a drugi do odszyfrowywania wiadomości.
Rząd tak naprawdę nie jest obeznany z technologią, więc algorytm szyfrowania nie musi być wyrafinowany; upewnij się tylko, że na pierwszy rzut oka wynik nie będzie podobny do oryginału.
Jesteś jednak potajemnie lojalny wobec rządu Dakoty Południowej. Twoim zadaniem jest, aby mieszać komunikację, tak, że każda wzmianka North Dakota
staje South Dakota
po deszyfrowania, i vice versa. Dotyczy to również North/South Dakotan
i North/South Dakotans
.
Na przykład:
Dakota Północna jest najbogatszym hrabstwem w Ameryce Północnej, podczas gdy Dakota Południowa jest biedniejsza niż południowa Floryda. - rząd Dakoty Północnej
zostanie poddane szyfrowaniu, a następnie deszyfrowaniu, w wyniku czego:
Południowa Dakota jest najbogatszym hrabstwem w Ameryce Północnej, podczas gdy Dakota Północna jest biedniejsza niż południowa Floryda. - rząd Dakoty Południowej
Algorytm, który dokonuje tego w najbardziej tajemniczy, podstępny sposób, o czym świadczy posiadanie największej liczby głosów pozytywnych, zostanie zaakceptowany.
string.replace
praca? Ponieważ powiedziałeś, że ludzie tak naprawdę nie interesują się technologiami;)Odpowiedzi:
Rubin
Próbny
źródło
CJam
To jest koder:
a to jest dekoder:
Wypróbuj online tutaj
To działa tylko z kapitału
N
,S
aD
wNorth/South Dakota
Przekaż łańcuch wejściowy do pierwszej funkcji z STDIN. Pobierz zakodowany ciąg, przekaż go do drugiej funkcji, aby uzyskać zdekodowane i przekonwertowane wyjście.
źródło
.
pomiędzyHaHaHaHa!
iThe
?364380128038419794871782113211824472986419260504039724627500790722811712426518562428698978399810134993565366126560239807690210155343815201005388714282
.Jawa
Odkryłem, że dzielenie przez zero nie powoduje błędów w tym programie. Ten program w pełni koduje ciągi znaków do postaci, której nie można przypisać rządowi Dakoty Północnej. Z powodu dziwnego zachowania wspomnianego powyżej, kodowanie i dekodowanie może nie działać poprawnie we wszystkich przypadkach.
Pytanie: Co jest
funnyNumber
równe?źródło
join
doString
klasy metodę statyczną ? * Ciche świętowanie! *funnyNumber
ma wartośći - 2
. Osobiście nie uważam, że ukrywanie postaci w Unicode jest bardzo niedopracowane.i - 2
.\u
działa poza łańcuchami.System.out.println(2+\u002f*2/0*\u002f+-2)
.JavaScript
Moje rozwiązanie prawdopodobnie nie jest najmądrzejsze. Ale to działa :) Oto skrzypce
Najpierw wymień
north d
sięhisdf
isouth d
zhisde
, a następnie odwrócić wszystkich znaków bitowe i przesunąć je w tablicy. Tablica konwertuję na ciąg, a następnie zastępuję odwrócone wartości znaków prawidłowymi. Wcześniej zastępuję wartościhisdf
ihisde
przełączam.źródło
hisde
gdzieś zawierał ?north d
isouth d
:)AWK: Koder: 165 bajtów, Dekoder: 61 bajtów
Enkoder (odpowiedzialny również za zastąpienie południa północą i odwrotnie):
Dekoder:
Niektóre testy:
koduje w:
(powinno to być wystarczająco zaszyfrowane, aby rząd niezbyt zaawansowany technologicznie : o))
Następnie dekoduje się na:
Ale tego oczekiwano: o)
Uwaga: Dakota Północna, Dakota Północna, Dakota Północna, Dakota Południowa, Dakota Południowa i Dakota Południowa muszą być poprawnie pisane wielkimi literami.
źródło
do
Połącz z:
gcc -Wall -Wextra -Wno-missing-field-initializers -Wimplicit -Wreturn-type -Wunused -Wformat -Wswitch -Wshadow -Wwrite-strings -DGCC_WARN -ansi -pedantic file.c
Dla maksymalnego zła, napisane w K&R C z odrobiną nadużywania wskaźnika.
Lasciate ogni speranza, voi ch'entrate.
Buśhaīila rukgâī, naǵkxarańga ba tdhuløk.
Ponadto wszystko jest w
bits
funkcji igenkey
funkcji.Biegać:
Uwaga: Podczas określania klawisza w
decrypt
trybie może być konieczne ucieczka niektórych znaków w klawiszach odwrotnymi ukośnikami.źródło
JavaScript, ES6
Słodki i prosty na początek.
Enkoder:
Dekoder:
Wypróbuj poniżej w najnowszym Firefoksie:
źródło
dakotan
zdakota
:)North Dakotan
nie tylko toNorth Dakota
samo na południu