сценарий
Я часто готовлю лазанью, но у меня также есть несколько ошибок. Поскольку я повторяю эти ошибки так часто, я подумал, что, возможно, смогу создать программу, которая проверяет, все ли я сделал правильно
Допустимая лазанья
Действительная лазанья
- Не менее 5 столбцов в ширину
- Минимум 4 слоя
- Исключая дополнительный сыр
- Верхний слой - сыр (представлен
,
) - Второй слой - соус (обозначенный либо
@
или#
) - После этого слои чередуются (1 слой соуса, 1 слой лапши (обозначен либо
~
или-
)) - Каждая колонка может иметь один или два слоя сыра
Программа
Должен
- взять в качестве входного сигнала лазанью
- многострочная строка
- массив строк
- строка содержит только символы
,@#~-
- прямоугольный
- Дополнено пробелами при необходимости
- Выведите, действительно ли это лазанья
- Любая вещь, которая является правдой на вашем языке, если действительна
- Ничего или ничего ложного в твоем языке
- быть либо
- полная программа
- функция
- который использует только функциональность, которая была реализована до 14.12.2016
Контрольные примеры
,, ,
,,,,,,
@@@###
~~~~~-
@##@@#
--> truthy
@@@#
----
@@##
----
@###
--> falsy (cause of cheese and width (You don't have to print the stuff in the brackets))
,,,,,
-----
@####
-----
@@@@@
--> falsy (have the sauce as last layer)
Критерии победы
- самый короткий
- в байтах
- Код-гольф
- функциональная
представление выигрывает.
code-golf
ascii-art
decision-problem
Роман Греф
источник
источник
,@#~-
за исключением пробелов в качестве отступов, но первый тестовый пример содержит пробелы в середине строки.Ответы:
Сетчатка ,
3834 байтаСпасибо Грими за сохранение 4 байта.
Есть регулярное выражение с вашей лазаньей.
Количество байтов предполагает кодировку ISO 8859-1.
Предполагается, что ввод заканчивается завершающим переводом строки. Печатает
1
(соответствует) для действительных лазанов и0
(не соответствует) для недействительных.Попробуйте онлайн!
объяснение
Это просто стандартное регулярное выражение .NET, сопоставленное с вводом, за исключением того, что Retina предоставляет псевдоним
¶
для перевода строки или\n
.Поскольку входные данные гарантированно будут прямоугольными, нам нужно только проверить ширину лазаньи в одном из рядов.
источник
¶[-~]*
вместо(¶[-~]+|$)
сохранения 4 байта.Грязь , 43 байта
Попробуйте онлайн! Отпечатки
1
для матча и0
без матча.объяснение
Grime предназначен для сопоставления двухмерных рисунков, которые строятся по кусочкам из небольших рисунков. Сначала я определяю необязательный верхний слой, затем остальные слои, повторяя вертикальную полосу.
источник