Липограмма - это блок слов, в котором отсутствует определенный символ. Прямо сейчас я избегаю нашего пятого символа 26, который обычно появляется. Вы должны знать, что я опускаю. Если нет, посмотрите «липограмму» и узнаете.
Твое задание
С символом, пробелом и следующей строкой (пробелы могут отображаться в этом; только с ASCII 32-126 символами) на входе, выведите ложь, если этот символ находится во входной строке, правда, если нет. Этот символ, который вы должны искать, всегда будет соответствовать двум диапазонам: от «A» до «Z» или от «a» до «z» (ASCII 65-90, 97-122). Не различайте столицы и некапиталы. Кроме того, не беспокойтесь о пробелах или знаках препинания. Обе программы и функции удовлетворяют. Кроме того, вы можете разделить входной символ и строку на два аргумента для программ или функций, и строка в качестве первого аргумента - это нормально.
иллюстрации
Truthy
e This is a lipogram.
a You need to consider other letters too.
E Capitals also count.
Falsy
e This sentence is not a lipogram (for e).
t This particular letter is surprisingly hard.
A You don't need to care about any non-alphabetic symbols.
Версия без липограммы
Липограмма - это серия слов, в которой буква отсутствует. Я пропустил букву «е» выше.
Ваша задача - взять символ и строку (которые могут включать пробелы) в качестве входных данных, разделенных пробелом или символом новой строки, и вывести ложное значение, если символ находится в строке, и истинно в противном случае. Вы можете предположить, что строка состоит только из печатных символов ASCII (коды символов 32-126). Символ всегда будет в английском алфавите, и нет разницы между строчными и прописными буквами. Символ не будет пробелом или символом. Вы можете написать программу или функцию. Для любого из них вы можете принять символ и строку в качестве отдельных аргументов, и строка может идти первой.
источник
Ответы:
C, 42 байта
источник
Javascript ES6
342623 байтпобрился 8 байтов спасибо @ MartinBüttner
источник
/i
повлияло\1
!05AB1E ,
7643 байтаКод:
Объяснение:
Попробуйте онлайн!
Правда это когда текущее письмо выводится. Ложь - это когда ничего не выводится.
источник
-
эффективно ли операция дополнения ?TeaScript,
53 байтаАга \ о /! Я забыл о неявном вводе! TeaScript автоматически вставит
x.
(ввод) в начале. Затем я могу проверить, есть ли у него другой вход (в переменнойµ
) и поэтому НЕ (N
). Я думаю, что лучшее преимущество TeaScript здесь - это неявный вводПопробуйте онлайн
объяснение
источник
Баш,
1611 байт-i
является регистронезависимым флагом,-v
инвертирует (проверяет на несоответствие).Символ должен быть указан в качестве аргумента командной строки и тестовой строки в STDIN.
Уменьшено на 5 байт с помощью @ DigitalTrauma !
Образцы прогонов:
источник
grep -iv $1
, Я не вижу ничего плохого в том, чтобы смешивать STDIN и аргументы командной строки в качестве методов ввода - я делал это раньше - но, возможно, есть мета-прецедент, который я пропустил ...^D
пользователей, чтобы комментировать этот ответ? @ Downgoat - ты там? ;-)Japt,
1264 байтаПроверьте это онлайн!
Ответ TeaScript @ Downgoat напомнил мне, что у Japt точно такая же встроенная функция, отрезав последние два байта.
Как это устроено
источник
CJam, 6 байт
Попробуйте онлайн! НПВ
объяснение
источник
JavaScript (ES6), 29 байт
источник
c=>s=>!RegExp(c,"i").test(s)
, сохранив байт.c=>s=>!s.match(c,'i')
это 21. :)match
принимает только один аргумент. Второй аргумент регистрирует предупреждение консоли в Firefox 39 или более поздней версии и не будет работать в Firefox 47 вообще.Python 3, 36
Необходимость игнорировать дело на удивление дорого.
Принимает аргументы как (char, string)
источник
Pyth,
87 байтовобъяснение
Спасибо @FryAmTheEggman за сообщение, что я могу использовать
-
вместо!}
Попробуй здесь
источник
O, 8 байтов
Анонимная функция, которая принимает символ и строку.
Попробуйте онлайн.
объяснение
источник
Perl, 11 + 1 = 12 байт
Требуется
-p
переключатель и принимает вход как$string\n$letter
Как это устроено:
источник
<<<
.) (И, используя обычный STDIN (нет<<<
), я получаю 1, если буква не является последним символом в строке, потому что вы не сжимаете букву .)printf "this is a lipogram\ne\n" | perl -pe'$_=lc!~lc<>'
вместо этого.<<<
это синтаксис bash<<<
- это просто еще один способ передать stdin.Java, 63 байта.
источник
(s,c)->!s.matches("(?i:.*"+c+".*)")
которое корочеString
иchar
куда-нибудь.MATL , 5 байтов
Попробуйте онлайн!
источник
Серьезно, 6 байтов
Попробуйте онлайн!
Принимает вход как
'string'\n'char'
Объяснение:
источник
,ù,ùìuY
работы? (Предполагается, что это я, который делает indexOf, но я не помню, кто это делает)Юлия 0,3,
2220 байтuppercase
это длинное слово.Как это устроено
источник
Сетчатка, 11
Я не уверен, что в Retina считается правдой / ложью, это будет повторять строку, если это липограмма для данного символа, и будет возвращать пустую строку, если это не так.
Это также будет работать для многострочного ввода.
Попробуйте онлайн!
источник
Минколанг 0.15 , 10 байт
Попробуй это здесь.
объяснение
источник
Ржавчина, 75 байт
Большой результат означает, что я выиграл, верно? > _ <
Попробуй это здесь.
источник
Желе, 8 байт
Попробуйте онлайн!
Как это устроено
источник
CJam, 10 байтов
Анонимная функция (блок), которая принимает символ (не строку!) И строку.
Попробуйте онлайн.
объяснение
источник
PowerShell,
3632302925 байтИспользует
-notmatch
оператор , и просто выводитTrue
илиFalse
.источник
Python, 34 байта
Проверяет наличие символа
c
в строкеs
, игнорируя регистр, добавляя замененную регистром копиюs
вs
. Отрицание сделано сnot
, который выглядит длинным, но я не вижу лучше. Это такая же длина:Вы не можете опустить парены, иначе Python будет интерпретировать выражение как цепное неравенство формы с тремя значениями
_ in _ < _
.Python 3.5 должен позволять 33 байта через набор преобразований, хотя я не могу проверить это сейчас.
источник
Пайк, 7 байт
Объяснение:
источник
JavaScript ES6,
4140 байтПринимает всю строку в качестве аргумента. Я не могу сохранить байты, приняв два разных аргумента, потому что тогда мой ответ растворился бы в другом ответе ES6 :(
источник
not in
.R, 26 байт
x - строка, y - буква, T в вызове grepl делает его нечувствительным к регистру.
источник
Джольф,
67 байтТак. Много. Шестерки. SMS? Ну, попробуйте здесь, тем не менее. Заменить
⌂
на\x7f
.источник
Рубин, 17 байт
источник
Пакетная, 53 байта
Принимает ввод как два аргумента командной строки. (При необходимости укажите второй аргумент.) Выводит 1 в случае успеха, ничего, если первый аргумент (нечувствительно) найден во втором.
источник
Mathematica,
3332 байтаМне нравится, когда ## можно использовать. Ввод строки, затем символ.
Или регистрозависимая версия: (11 байт :)
Да, просто встроенный.
источник