Вы были наняты правительством Северной Дакоты для шифрования сообщений штата. Напишите две программы: одну для шифрования сообщения и одну для расшифровки этого сообщения.
Правительство не очень разбирается в технологиях, поэтому алгоритм шифрования не должен быть сложным; просто убедитесь, что результат на первый взгляд не похож на оригинал.
Тем не менее, вы тайно верны правительству Южной Дакоты. Ваша задача состоит в том, чтобы перепутать сообщения, чтобы каждое упоминание о них North Dakota
становилось South Dakota
при расшифровке, и наоборот. Это также относится North/South Dakotan
и к North/South Dakotans
.
Например:
Северная Дакота является самым богатым графством в Северной Америке, в то время как южные дакоты беднее южной Флориды. - правительство Северной Дакоты
будет проходить шифрование, а затем дешифрование, в результате чего:
Южная Дакота является самым богатым графством в Северной Америке, в то время как северные дакоты беднее южной Флориды. - правительство Южной Дакоты
Алгоритм, который выполняет это самым скрытным, хитрым способом, о чем свидетельствует наличие большинства голосов, будет принят.
string.replace
работа? Потому что вы сказали, что люди на самом деле не в технологии;)Ответы:
Рубин
демонстрация
источник
CJam
Это кодировщик:
и это декодер:
Попробуйте онлайн здесь
Это работает только с капиталом
N
,S
иD
вNorth/South Dakota
Передайте входную строку первой функции из STDIN. Получите закодированную строку, передайте ее второй функции, чтобы получить декодированный и преобразованный вывод.
источник
.
междуHaHaHaHa!
иThe
?364380128038419794871782113211824472986419260504039724627500790722811712426518562428698978399810134993565366126560239807690210155343815201005388714282
.Джава
Я обнаружил, что деление на ноль не вызывает ошибок в этой программе. Эта программа полностью кодирует строки в форму, которую нельзя отследить правительству Северной Дакоты. Из-за странного поведения, упомянутого выше, кодирование и декодирование могут работать некорректно во всех случаях.
Вопрос: что
funnyNumber
равняется?источник
join
вString
класс? * Тихий праздник! *funnyNumber
имеет значениеi - 2
. Лично я не чувствую, что сокрытие символов в юникоде очень скрыто.i - 2
.\u
работает вне строк.System.out.println(2+\u002f*2/0*\u002f+-2)
.JavaScript
Мое решение, вероятно, не самое умное. Но это работает :) Вот скрипка
Сначала я заменяю
north d
наhisdf
иsouth d
сhisde
, затем я инвертирую все символы по битам и помещаю их в массив. Массив я конвертирую в строку, а затем заменяю инвертированные значения символов на правильные. До этого я заменял значенияhisdf
иhisde
переключал.источник
hisde
где-нибудь?north d
иsouth d
:)AWK: кодер: 165 байт, декодер: 61 байт
Кодер (также отвечает за замену юга на север и наоборот):
Декодер:
Некоторый тест:
кодируется в:
(этого должно быть достаточно, чтобы правительство не было технически подкованным : o))
Затем он декодирует в:
Но это было ожидаемо: о)
Примечание: Северная Дакота, Северная Дакотан, Северная Дакотана, Южная Дакота, Южная Дакотана и Южная Дакотана должны быть правильно прописаны.
источник
С
Компилировать с:
gcc -Wall -Wextra -Wno-missing-field-initializers -Wimplicit -Wreturn-type -Wunused -Wformat -Wswitch -Wshadow -Wwrite-strings -DGCC_WARN -ansi -pedantic file.c
За максимальное зло, написано в K & R C с чертой злоупотребления указателем.
Lasciate ogni speranza, voi ch'entrate.
Buśhaīila rukgâī, naǵkxarańga ba tdhuløk.
Кроме того, все в
bits
функции иgenkey
функции.Бегать:
Примечание. При указании ключа в
decrypt
режиме может потребоваться экранировать некоторые символы в ключе с помощью обратной косой черты.источник
JavaScript, ES6
Сладко и просто для начала.
Кодер:
декодер:
Попробуйте это ниже на последнем Firefox:
источник
dakotan
наdakota
:)North Dakotan
не тоNorth Dakota
же самое идет на юг