Напишите программу, которая принимает в качестве входных данных строку, состоящую из печатных символов (ASCII 20-7E) и целого числа n
в [2,16], и выполняет следующую модификацию строки.
- Каждый символ в строке преобразуется в его ASCII-код (примеры приведены в шестнадцатеричном формате, хотя база 10 также допустима).
- Коды ASCII преобразуются в основание
n
и объединяются вместе. - Новая строка разделяется на все остальные символы. Если количество символов нечетное, последний символ удаляется полностью.
- Печатные коды ASCII (в базе 16) преобразуются обратно в их символы, тогда как непечатные коды ASCII удаляются.
- Полученная строка печатается.
Прецедент
вход
Hello, World!
6
меры
Hello, World!
48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21
2002453003003031125222330331030024453
20 02 45 30 03 00 30 31 12 52 22 33 03 31 03 00 24 45
Выход этой программы есть E001R"31$E
.
Это код гольф, поэтому применяются стандартные правила. Самый короткий код в байтах побеждает.
7
строкаJ
будет проходить через шагиJ
->50
->101
->10
->(no output)
, как и строкаK
илиL
.H
ASCII 72 (десятичный) или 48 (шестнадцатеричный), но мне нужно 200 (основание 6). Вся строка 2 в примере, на мой взгляд, бесполезна и сбивает с толкуОтветы:
Pyth - 22 байта
Надеюсь, что в гольф гораздо больше, довольно просто.
Попробуйте это онлайн здесь .
источник
q3l`T
это чудесно.fgTd
быть достаточно?CJam, 33 байта
Принимает участие в форме
6 "Hello, World!"
. Проверьте это здесь.Смотрите ответ Денниса для аналогичного, но лучшего решения с хорошим объяснением.
источник
Bash + общие утилиты Linux, 118
источник
printf %s "$1"
вecho -n "$1"
2 байта-e
. Попробуйтеecho -n "-e"
CJam, 24 байта
Обратите внимание, что между
'
и,
. Есть символ DEL (0x7F) . Попробуйте онлайн в интерпретаторе CJam .Как это работает
источник
DEL
символ из вывода.JavaScript (ES6), 137
147Использование большинства подробных функций, доступных в JavaScript
источник
x=>x>=
[for(z of ...)if(...)...]
вместоmap(...).filter(...)
x=>x>=
ушелЮлия, 118 байт
Ungolfed:
источник
Mathematica, 134 байта
Если функция разрешена:
Mathematica, 112 байт
источник
TeaScript, 23 байта
TeaScript - это JavaScript для игры в гольф
Относительно прямолинейный, но восхитительно короткий. Я, вероятно, могу сыграть в гольф еще несколько персонажей с еще несколькими операторами. Несколько других новых функций также могут быть использованы для сокращения некоторых байтов.
Ungolfed && Объяснение
источник
Рубин 92
Онлайн тест здесь .
источник
Python 2, 174 байта
Попробуй здесь
Не самый лучший инструмент для работы. Поскольку в Python нет функции преобразования в произвольную базу, мне пришлось реализовать свою собственную. По крайней мере, это было забавно - особенно найти [немного] более короткое выражение для цифр, чем
"0123456789ABCDEF"[n%b]
. Для итерации по двум символам за раз я обнаружил, чтоwhile
цикл немного короче, чем функциональный подход.181 байт как полная программа:
источник
MATLAB, 103 байта
Я написал функцию k, которая принимает строку s и целое число n в качестве входных данных. например:
дает
Самое неприятное, что мне пришлось обойти, это появление нулей, появляющихся при преобразовании в базу n . Извлечение их из массива, который должен был быть разделен после каждого второго символа, стоит довольно много байтов. Не уверен, возможно ли сохранить больше байтов, используя этот подход.
источник
PHP - 286 байт
Вставьте строку
$s
и целое число$b
.Передайте значение в
GET["s"]
.источник