Возьмите массив, который состоит из чисел или массивов, выводите, если он содержит только 2
s.
Вывод должен быть истинным или ложным значением (извините, если это уничтожает ответы)
Истинные тестовые случаи
[2]
[2,2]
[[2],[2,2],2]
[]
[[],[]]
Falsey Test Cases
[1]
[22]
[2,2,2,1]
[[1,2],2]
Стандартные лазейки запрещены.
IO по умолчаниюПрименяются правила .
Код-гольф, побеждает несколько байтов!
[[2]]
вовсе не содержит два.Ответы:
MATL , 3 байта
Попробуйте онлайн!
Технически это может быть просто
Поскольку массив, содержащий любые нулевые элементы, является ложным, но это кажется дешевым.
источник
2=
не для пустых матриц, или?2=p
отлично работает. Более короткая версия, в конце концов2=
, не делает. Кроме того, "странные крайние случаи" - два из тестовых случаев. :-)Python 2 ,
4340 байтПопробуйте онлайн!
На момент публикации этого ответа, он по - прежнему разрешен в этом мете консенсуса для вывода с помощью метания ошибки / не бросает ошибку. Поэтому этот ответ в 26 байтов был действительным:
Попробуйте онлайн!
источник
all
ничего, кроме ошибки, это правда.Пролог (SWI) ,
4333 байтаЯ чувствую запах ... рекурсии .
Спасибо Emigna и Leaky Nun за сохранение 10 байтов!
Код
Попробуйте онлайн! или проверьте все контрольные примеры!
Объяснение:
Для не-Пролога пользователей, список отформатирован следующим образом:
[Head | Tail]
.Это
Head
первый элемент списка, а tail - оставшийся список. Проверьте это здесь! , Важным случаем здесь является то, что хвост списка с 1 элементом равен[]
. Вы можете проверить это здесь .источник
Желе , 4 байта
Попробуйте онлайн!
Как это устроено
источник
Октава, 13 байт
Проверьте все контрольные примеры.
Это анонимная функция, принимающая один входной аргумент
x
. Вычитает2
из всех элементов, проверяет, есть ли ненулевые элементы. Он отменяет выводtrue
для случаев, когда все значения равны нулю.Это работает, потому что
x-2
работает для матриц всех размеров, включая пустую матрицу[]
.x-2
было бы достаточно, если бы не было пустых матриц на входе.источник
Математика , 28 байт
Попробуйте онлайн!
источник
{0}
разрешен; это привело бы к ложному положительному результату.Сетчатка ,
1310 байтСпасибо Kritixi Lithos за сохранение 3 байта.
Попробуйте онлайн!
источник
05AB1E , 4 байта
Попробуйте онлайн!
объяснение
источник
2
работать вместоY
?2
работает также. Мне просто нравится тот факт, что в нем нет цифр :)JavaScript (ES6),
22192322 байтаПроверь это
источник
Mathematica, 15 байт
Это также работает в математике. Попробуйте онлайн!
источник
APL (Dyalog) , 5 байтов
Попробуйте онлайн!
объяснение
источник
Mathematica, 24 байта
Чистая функция возврата
True
илиFalse
. ПослеFlatten
ИНГ вложенного массива и назвав егоt
,Cases[t,2]
возвращает список элементов , которые соответствуют «образцу»2
, и==t
проверяет , что является ли всем списком.Mathematica, 29 байт
Не так коротко, но веселее. Начиная с ввода
#
, применяются два правила замены, пока результат не перестанет изменяться (//.
): во-первых, все2
s заменяются на{}
s; и затем любой список, все записи которого являются пустыми множествами ({{}..}
), заменяется (многократно) пустыми наборами. Если остальное пустое множество (=={}
), мы победим.источник
Haskell , 36 байт
Анонимная функция, принимает
String
и возвращаетBool
.Использовать как
(all((==2).fst).(reads=<<).scanr(:)[]) "[2,2,2,1]"
Попробуйте онлайн!
Как это устроено
scanr(:)[]
генерирует список всех суффиксов строки.(reads=<<)
пытается проанализировать число в начале каждого суффикса, объединяя успехи в список кортежей(n,restOfString)
.all((==2).fst)
проверяет весь разобранный номер2
.источник
not.all(`elem`"2,[]")
?22
.Python 2 , 38 байт
Попробуйте онлайн!
Берет в строку без пробелов, выводит bool.
Проверяет , является ли удаление всех символов
'[],2'
изl
дает пустую строку. Также проверяет, что22
не является подстрокой - если это так,l
вместо пустой строки используется входные данные для сравнения с результатом удаления, и это всегда дает сбой.источник
Ruby,
282322 байта - 5 байтов, сохраненных ГБНесмотря на то, что «flatten» очень длинный, он все же короче, чем решения на основе регулярных выражений или рекурсивные вещи, которые должны спасать ошибки в базовом случае. Однако встроенная в Ruby комбинация множеств и массивов иногда бывает удивительно полезна.
источник
[]
или[[],[]]
.[2,*x].flatten.uniq==[2]
немного длиннееx.flatten-[2]==[]
еще короче. Спасибо за чаевые!JavaScript (ES6), 26 байт
Контрольные примеры
Показать фрагмент кода
источник
f=
потому что вы сослались на это.MATL , 4 байта
Попробуйте онлайн!
Сломать:
Ну, переиграл . Но я сохраняю это, так как я весьма счастлив, что справился со всем этим самостоятельно (хотя задача очень проста).
источник
R, 28 байт
unlist(x)
превращает (вложенный) список в вектор. Затем2
вычитается из этого вектора.any
преобразует (с предупреждением) числовой в логический и проверяет, есть лиTRUE
s. Это инвертируется!
и выводится.Это работает с вложенными списками, потому что
unlist
по умолчанию работает рекурсивно, чтобы удалить все записи из списка начального списка.Это также работает с пустыми списками, потому что
unlist(list())
становитсяnumeric()
пустым числовым вектором. Принуждение с помощьюany
делает егоlogical()
, который интерпретируется какFALSE
путьany
, а затем отмененный кTRUE
пути!
.источник
pryr::f(!any(unlist(x)-2))
сохраняет пару байтов.all(unlist(x)==2)
.any(unlist(x)-2)
что возвращает непротиворечивое,TRUE
если в сглаженном массиве естьFALSE
значение,2
TRUE
считается фальси: /Python 3 , 55 байт
Без обмана. Использует вложенный список в качестве входных данных.
Попробуйте онлайн!
источник
int!=type(x)and
Желе , 4 байта
Попробуйте онлайн!
Немного отличается от алгоритма Лики.
Объяснение:
источник
Сетчатка ,
1411 байтПопробуйте онлайн!
источник
\W
не кажется таким хорошим критерием:2.2
это число, которого нет2
, но я полагаю, что оно будет соответствовать05AB1E , 4 байта
Попробуйте онлайн!
источник
JavaScript (ES6),
535048 байтСохранено 5 байт, благодаря @Shaggy!
Тестовые случаи:
источник
f([])
иf([[],[]])
должен быть правдивым!c
вместоc==""
.05AB1E , 7 байтов
Попробуйте онлайн! или попробуйте все тесты!
источник
Java 8,
1265527 байтИзумительный ответ Retina от @KritixiLithos , исключая
^...$
, потому чтоString#matches
всегда соответствует всей строке и^...$
неявно добавляет .-2 байта спасибо @Jakob за напоминание о
^...$
том, что не нужноString#matches
.Попробуй это здесь.
источник
boolean c(java.util.List l){return(l+"").matches("^(\\W|2\\b)+$");}
бы сработает, да? Просто хотел указать на это на случай, если вы планируете продолжить игру в список.^
и$
в регулярном выражении, так какString.matches
проверяет только всю строку.^...$
. Забыл об этом, хотя я использовал его довольно много раз в прошлом ..Python 2 ,
444342 байтаПринимает
x
в качестве строкового представления списка. Это также предполагает, что, как в примере, представления не имеют пробелов.Попробуйте онлайн!
объяснение
Оба они берут символы в строковом представлении ввода и определяют, есть ли в нем какие-либо другие символы
[], 2
. Они делают это путем приведения к набору и сравнения с набором только этих символов. Однако это не удастся, если у нас есть число, отличное от 2, которое имеет только цифры 2 (например, 22 или 222), чтобы исправить этот случай, мы умножаем строку, используемую для создания набора, на отрицание того,x
содержит или нет"22"
. Если он содержит его, это будет пустой набор, в противном случае он будет таким же, как и раньше.источник
lambda x:set(x)==set("[], 2")
?[22]
[]
lambda x:set(x)<=set("[],2"*-~-("22"in x))
для -1Ом, 6 байт
Использует
CP-437
кодирование.Объяснение:
источник
PHP, 46 байт
источник
$_GET
виде строк?<?=!preg_match('/:"(?!2")/',$argn);
и input является строковым представлением сериализованного массива - 11 байтPHP <7,0, 29 байт
Ввод как строковый массив в кодировке JSON
PHP <7,0, 42 байта
используйте устаревшую функцию ereg
PHP, 50 байт
печатает 1 за правду и ничего за ложь
-1 байт для другого мудрого удаления
!
или + 1 байт для истинного 1, ложного 0 добавить
+
до!
Попробуйте онлайн!
источник
$r
переменный:<?array_walk_recursive($_GET,function($i){$i-2&¨})?>1
.Pyth, 6 байт
Очень похоже на мой ответ CJam. Я все еще новичок в Pyth, поэтому, пожалуйста, скажите мне, есть ли что-нибудь, что я могу сыграть в гольф.
Объяснение:
источник