Если задана строка, содержащая только строчные буквы, закодируйте эту строку с помощью алфавитного шифра.
Для кодирования с помощью алфавитного шифра (я буду использовать пример hello
):
- Сначала преобразуйте каждую букву в строке в число в зависимости от ее положения в алфавите (
a
=1
,b
=2
и т. Д.). Пример:8
5
12
12
15
- Дополните каждое число двумя символами с помощью
0
s. Пример:08
05
12
12
15
- Присоединиться. Пример:
0805121215
Контрольные примеры
helloworld -> 08051212152315181204
codegolf -> 0315040507151206
alphabetcipher -> 0112160801020520030916080518
johncena -> 1015081403051401
Помните, это код-гольф , поэтому выигрывает код с наименьшим количеством байтов.
Ответы:
05AB1E ,
116 байтовКод:
Объяснение:
Сначала мы конвертируем строку в их значения ASCII.
codegolf
станет:Чтобы добраться до индексов алфавита, вычтите
96
:Чтобы заполнить нулями, добавьте
100
к каждому элементу и удалите первый символ каждого int. Для приведенного выше примера+100
будет:И удаление первого символа каждого приведет к:
Мы можем объединить оба шага над (
-96
и и+100
) частью просто+4
. Для кода:Попробуйте онлайн!
источник
¦
опять делает?Python 2, 42 байта
Проверьте это на Ideone .
источник
lambda s:''.join(`ord(x)+4`[1:]for x in s)
Pyth,
1110 байтПопытайся! Моя первая поездка в Пиф.
Эквивалент Python:
источник
C,
5543 байтаideone
источник
printf("%02d",*c++-96);}
Короче и действителен, если я не ошибаюсь.Python, 46 байт
Довольно просто. Попробуйте это на repl.it!
источник
Желе ,
97 байтTryItOnline
Как?
источник
O+4DḊ€FṾ€
для того же счета, возможно, для игры в гольфO+4Ṿ€Ḋ€
экономит 2 байта.Haskell,
сорок четыре 3028 байтовИспользование
+4
подхода из ответа Аднана экономит 14 байтов.Попробуйте это на Ideone. Использование:
Два байта отключены благодаря xnor . Старая версия:
источник
Perl, 29 байт
28 байт кода +
-n
флаг.Бежать с :
источник
JavaScript (ES6),
5249 байтРекурсия оказалась на 3 байта короче, чем
.replace
:parseInt(s,36)
немного дольше для каждого подхода, потому что вы должны изменить4
на91
:источник
Japt, 10 байт
Вероятно, не становится короче этого ...
Проверьте это онлайн!
объяснение
источник
Java 7,60 байт
источник
char[]
вместоString
.MATL,
1211 байт1 байт сохранен благодаря @Luis
Попробуйте онлайн
источник
Гексагония , 33 байта
Попробуйте онлайн!
Мм .. получил несколько неактивных операций в шестиугольнике, поэтому я вставил сегодняшнюю дату.
Расширенная форма с заменой даты на no-ops
10
и переместите указатель памяти куда-нибудь ...$
пропускает зеркало и,
читает байт.<
ветви:-1
который не является положительным), он идет@
и завершает программу.95
(уменьшаетсяa
), а затем мы печатаемresult / 10
(целочисленное деление) иresult % 10
и снова зацикливаемся.источник
Vim, 60 нажатий клавиш
Почти полностью регулярное выражение основано решение. Как обычно, использование регистра eval делает его неприлично длинным.
источник
PHP, 58 байт
источник
$argn
47 байтов TIO .PowerShell v2 +, 44 байта
Принимает ввод
$args[0]
,char
преобразует его как -array, передает в цикл. В каждой итерации мы берем текущий символ$_
по модулю32
, который неявно приводится к значению ASCII. Удобно ;-), это выстраивается такa = 1, b = 2
и т. Д. Это подается в-f
оператор ormat, работающий со строкой"{0:D2}"
, которая задает минимум из двух цифр (т. Е. При необходимости он добавляет начальный ноль). Эти строки цифр заключены в скобки,-join
объединены в одну строку и оставлены на конвейере. Вывод через неявныйWrite-Output
происходит при завершении программы.источник
Perl, 24 байта
Включает +1 для
-p
Внесите свой вклад в STDIN:
encode.pl
источник
4+ord$&
а5+ord$&
не ;-)exec rev
print
это 5 байтов,<>
еще 2, так что мне было интересно, что за 1 байт был встроен для реверса, о котором я не слышал!DASH , 27 байт
Пример использования:
объяснение
источник
Пакетный,
256239237 байтПринимает участие в STDIN.
источник
IBM PC DOS 8088 в сборе,
332827 байтСобранный бинарный файл:
разобранное:
Автономный исполняемый файл DOS для ПК. Ввод строки из командной строки, вывод в консоль.
I / O:
источник
MATL , 11 байт
Попробуйте онлайн!
источник
Рубин,
5346 байт->s{s.chars.map{|c|(c.ord-96).to_s.rjust(2,?0)}.join}
->s{s.chars.map{|c|(c.ord+4).to_s[1..2]}.join}
источник
R
7151 байтСохранено 20 байтов благодаря Billywob. Принимает ввод из stdin и выводит в stdout.
Примеры:
источник
utf8toInt(scan(,"))-96
вместо всего совпадения. Не думайте, что есть лучший способ справиться с заполнением.formatC
ранее, но это сработало, поскольку требовалось на один байт больше, чем текущий подход.На самом деле , 10 байтов
Использование аккуратного алгоритма в ответе Аднана 05AB1E . Предложения по игре в гольф приветствуются. Попробуйте онлайн!
Ungolfing
источник
Groovy, 51 байт
источник
Лабиринт, 40 байт
источник
Befunge-98, 19 байт
источник
Groovy - 31 байт
Groovy преобразование решения NumberKnot в Java:
Пример здесь, используя различные варианты:
http://ideone.com/vd0dTX
источник
Пайк, 7 байт
Попробуй это здесь!
источник
C #, 54 байта
источник