Как могли заметить несколько человек в последнее время, я в значительной степени отказался от разработки Braingolf, потому что он скучный и скучный, и перешел на 2Col, который немного интереснее и не предназначен для игры в гольф.
Отличительной особенностью 2Col является то, что каждая строка кода должна быть ровно 2 символа, исключая символ новой строки. Это означает , что длина программы 2Col всегда можно рассчитать , как , 3n-1
где n
это число строк в программе.
Итак, вот моя проблема: учитывая код 2Col в виде строки, выведите true, если это правильный код 2Col (каждая строка ровно 2 символа, и она соответствует 3n-1
формуле), и false в противном случае.
вход
Ввод должен быть взят в виде одной строки или массива символов.
Выход
Истинное значение, если входная строка является допустимым макетом, и ложное значение в противном случае.
Ваш код должен соответствовать тем значениям true / falsey, которые он использует
Testcases
======
F!
$^
----
truthy
======
======
*8
+1
Sq
----
truthy
======
======
nop
xt
----
falsey
======
======
+1
+1
#^
----
falsey
======
======
<empty string>
----
falsey
======
======
ye
----
truthy
======
======
no<space>
----
falsey
======
======
test
----
falsey
======
======
puzzle
----
falsey
======
счет
Это код-гольф, поэтому побеждает меньше байтов!
источник
true
фальшивым иfalse
правдивымpuzzle
. Это сделает решения, которые делают всю длину строки по модулю 3, затем отмененными (что работает для всех текущих тестовых случаев), недействительными.Ответы:
Brachylog (2), 4 байта
Попробуйте онлайн!
Полная программа (потому что это проблема решения ; полный вывод программ на брахилоге,
false.
если была ошибка подтверждения,true.
без таковой ).объяснение
Подписки
l
являются одной из новейших функций Brachylog (хотя они и старше, чем испытания), и это хорошая задача для их использования.источник
ṇlᵛ2
иṇlᵛ²
сработало бы.JavaScript (ES6),
24282524 байтаИсправлена программа и побрилось три байта благодаря @ PunPun1000
Сбросил один байт благодаря @Shaggy
Возвращает true, если допустимо, и false, если нет.
источник
s=>s.match(/^(..\n)*..$/)
не менее, они должны правильно соответствовать обоим, а также быть короче на 25 байтовtest
вместоmatch
.Cubix , 20 байтов
Возвращает 1 для правды и ничего для фальси
Cubified
ABq
хлебать во все входные данные, повернуть его вспять и нажать EOI (-1) на дно стека>;;
Шаг в петле и удалить предметы из стека?
Тест на ВЗ (-1).1uO@
нажмите 1 в стек, развернитесь к целочисленному выводу и остановитесь_
отразить обратно на?
который перенаправляет наw
сдвиг полосыN-!$@;U
вставьте перевод строки (10) в стек, вычтите, результат теста, пропустите остановку, если ложь, удалите результат и разверните;;>
удалить перевод строки из стека и перенаправить в цикл.Попробуйте онлайн!
источник
Python, 51
Тестовый кейс бегун:
источник
Haskell,
235232 байтаЯ получил вдохновение от некоторых других решений, умный трюк добавляет это
"\n"
.источник
Желе , 6 байт
Попробуйте онлайн!
Объяснение:
источник
Сетчатка , 10 байт
Попробуйте онлайн! Выходы
1
или0
по необходимости.источник
JavaScript (ES6),
3524 байтаПопробуй
источник
There's gotta be a shorter way to do this with RegEx!
Да (и мой, вероятно, не оптимально)05AB1E , 6 байтов
Попробуйте онлайн!
источник
J-uby ,
1918 байт:=~&
создает анонимную функцию, которая принимаетx
и возвращает,0
если это соответствует регулярному выражению/^(..\n*)..$/m
, илиnil
иначе.источник
Java (OpenJDK 8) , 25 байт
Попробуйте онлайн!
Проверяет, есть ли во входной строке любое количество строк, за которым следует перевод строки и последняя строка без таковой (обеспечивает как минимум одну строку)
источник
Утилиты Bash + GNU, 13
Это устанавливает возвращаемое значение оболочки (доступно в
$?
) равным 0 для false и 1 для true. Это на самом деле противоположный смысл по сравнению с обычным соглашением оболочки , поэтому чтобы сделать это правильно, вам нужно сделать следующее:Утилиты Bash + GNU, 15
источник
Рубин, 22 байта
источник
Japt ,
76 байтПопробуйте онлайн
объяснение
источник