Простое задание, вдохновленное популярностью моих предыдущих печатных невидимых текстов и печатных настоящих невидимых текстовых заданий , а также разной длины разных строковых испытаний
Получив строку, состоящую только из печатаемых символов ( 0x20 to 0x7E
), выведите на печать все печатаемые символы, которых нет в строке.
вход
Строка или массив символов, состоящий только из печатных символов ASCII
Выход
Каждый печатный символ ASCII отсутствует во входной строке в любом порядке.
Testcases
Input: "Hello, World!"
Output: ""#$%&'()*+-./0123456789:;<=>?@ABCDEFGIJKLMNOPQRSTUVXYZ[\]^_`abcfghijkmnpqstuvwxyz{|}~"
========
Input: "Hi!"
Output: " "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjklmnopqrstuvwxyz{|}~"
========
Input: ""
Output: " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
========
Input: " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
Output: ""
счет
Это код-гольф, поэтому побеждает меньше байтов на каждом языке
set( 'a', 'b', 'c' )
Ответы:
GS2 , 2 байта
Попробуйте онлайн!
Как это устроено
источник
Perl 6 , 29 байт
Обратите внимание, что результат является случайным, потому что Set s неупорядочены.
Проверь это
Expanded:
Существует также версия ASCII
∖
(-)
, но перед ней потребуется пробел, чтобы она не анализировалась как вызов подпрограммы.источник
Python 3.5 , 39 байт
Попробуйте онлайн!
Превращает ввод в набор и удаляет его из набора, содержащего все символы ascii
источник
Japt , 14 байт
Попробуйте онлайн!
Сохранено 4 байта благодаря Shaggy и obarakon
источник
127
на,#
чтобы сохранить один байт, и удалите,U
чтобы сохранить другой.¦
и перегруппировать свои аргументы, чтобы сохранить несколько байтов. Также 127 можно укоротить TIOHaskell, 32 байта
Попробуйте онлайн!
Скучная библиотечная функция для заданной разницы:
Haskell, 31 байт
источник
MATL , 5 байтов
Попробуйте онлайн!
Спасибо Луису Мендо за игру в гольф на 8 байтов!
Объяснение:
Разница симметричного набора даст каждый элемент, который присутствует ровно в одном из двух входных наборов. (но не оба). Это всегда даст правильный ответ, так как входной набор всегда будет подмножеством второго набора (все для печати ASCII).
Оригинальная версия:
Объяснение:
источник
Брахилог , 5 байт
Попробуйте онлайн!
объяснение
источник
JavaScript (ES6), 74 байта
Я уверен, что есть более короткий способ сделать это!
Попытайся
источник
Array(95)
включить пропавших без вести~
}
когда я это написал. Исправлено сейчас, спасибо.String.fromCharCode
это мерзавец, вот почему! : D~
ничего не изменилось, кроме того, что это было в спецификации. Также необходимо обновить часть «Попробуйте».Баш ,
47 4340 байтПопробуйте онлайн!
Генерирует диапазон hexa, инвертирует шестнадцатеричный дамп в char и удаляет символы, присутствующие в первом параметре.
источник
Октав,
2220 байтБлагодаря @Luis Mendo сэкономлено 2 байта.
Попробуйте онлайн!
Другой ответ:
Попробуйте онлайн!
источник
@(s)setxor(' ':'~',s)
сохраняет 1 байт@(s)setxor(32:'~',s)
кажется, тоже работает --- и тот же комментарий для этого :-)PHP, 42 байта
Ввод как массив
Вывести в виде строки
Попробуйте онлайн!
PHP, 53 байта
Введите как строку
Вывести в виде строки
заменить
<?=join
сprint_r
на выходе , как массивПопробуйте онлайн!
источник
Step 1: automatic starting tag
хорошоphp -r
... но, например, в этом примере он не платит, потому чтоecho
он длиннее<?=
.CJam , 8 байт
Где
␡
буквальный символ удаления.Попробуйте онлайн!
источник
-
работает вместо^
.Perl, 39 байт
Беги с
perl -pe
.источник
echo 'Hello World!' | perl -pe 's!.*!"pack(c95,32..126)=~y/$_//dr"!ee'
. Это работает для меня как на Perl v5.14 и v5.24.мозговой трах , 120 байтов
Попробуйте онлайн!
Облаченный:
Разъяснение:
источник
ом , 3 байта
Попробуйте онлайн!
Примечание: вы также можете ввести свой ввод в виде строки ( пример ), но в пустом случае ввода это не получится.
источник
Рубин,
231817 байтИспользует лямбда-функцию в соответствии с комментариями @ sethrin.
Предыдущие версии:
источник
s
нужно ли либо читать из STDIN, либо предоставлять в качестве аргумента функции? Задача также указывает, что входные данные могут быть заданы в виде массива символов. Преобразование в стабильную лямбду и сбросchars
дает 16-байтовое решение.->(s){[*' '..?~]-s)}
stdin
привязаны к глобальной переменной. В Ruby$<
есть сокращение,stdin
но лямбды, как правило, короче. Соглашения о вводе и выводе здесь . Я тоже не так много делаю, так что если правила не те, о которых я думаю, дайте мне знать.APL, 13 байт
Непосредственная:
источник
R , 50 байтов
возвращает анонимную функцию. Преобразует входную строку в целые числа, вычисляет установленную разницу между печатаемым диапазоном и входными значениями, а затем преобразует их обратно в строку и возвращает ее.
Попробуйте онлайн!
источник
PHP, 53 байта
Беги как труба с
-r
.источник
C #,
7471 байтСтарая версия с созданием диапазона для 74 байтов:
источник
05AB1E ,
54 байта-1 спасибо Эмигне
Попробуйте онлайн!
источник
V , 20 байтов
Попробуйте онлайн!
HexDump:
источник
C (gcc) ,
7572706850 байтПопробуйте онлайн!
источник
||
эту работу на «стандартном» C??:
это расширение GNU. Это работает также хорошо в Clang и TCC, хотя.Желе , 8 байт
Действительно 8 байтов? Пожалуйста, скажите мне, что я что-то пропустил!
Попробуйте онлайн!
Как?
альтернативно
После этой задачи
ØṖ
был введен новый атом, который возвращает все печатаемые символы ASCII , что делает следующую работу для 3 байтов:источник
Древесный уголь ,
1815108 байтПопробуйте онлайн! Ссылка на подробную версию кода. Редактировать: 3 байта сохранены, начиная с символов вместо целых чисел. Сохранено еще 5 байтов, когда я обнаружил недокументированную
γ
переменную, которая содержит печатные символы ASCII. Сохранены еще 2 байта, когда @ ASCII-только фиксированные предопределенные входные данные в подробном режиме (ответ остается в силе в том виде, в каком он есть, это всего лишь ссылка "Попробуй онлайн", которая не работала бы в то время).источник
Mathematica, 35 байт
Анонимная функция. Принимает список символов в качестве ввода и возвращает список символов в качестве вывода.
источник
Луа, 78 байт
источник
shortC , 33 байта
Преобразования, сделанные в этой программе:
A
->int main(int argc, char **argv) {
O
->for(
@
->argv
P
->putchar
));}
Полученная программа выглядит так:
Попробуйте онлайн!
источник
Pyth , 17 байт
Наивный подход.
Объяснение:
Проверьте это онлайн!
источник
Clojure, 60 или 49 байтов
Эти "применения" убивают меня: / О, если возвращение списка в порядке, то это немного короче.
источник