Для заданного строкового ввода напишите программу, которая печатает истинное значение в STDOUT или эквивалентное, если вход является допустимым UUID, без использования регулярных выражений.
Действительный UUID
32 шестнадцатеричные цифры, отображаемые в пяти группах, разделенных дефисами, в форме 8-4-4-4-12, всего 36 символов (32 буквенно-цифровых символа и четыре дефиса).
Тестовые случаи
0FCE98AC-1326-4C79-8EBC-94908DA8B034
=> true
00000000-0000-0000-0000-000000000000
=> true
0fce98ac-1326-4c79-8ebc-94908da8b034
=> true
0FCE98ac-1326-4c79-8EBC-94908da8B034
=> true
{0FCE98AC-1326-4C79-8EBC-94908DA8B034}
=> false (the input is wrapped in brackets)
0GCE98AC-1326-4C79-8EBC-94908DA8B034
=> false (there is a G in the input)
0FCE98AC 1326-4C79-8EBC-94908DA8B034
=> false (there is a space in the input)
0FCE98AC-13264C79-8EBC-94908DA8B034
=> false (the input is missing a hyphen)
0FCE98AC-13264-C79-8EBC-94908DA8B034
=> false (the input has a hyphen in the wrong place)
0FCE98ACD-1326-4C79-8EBC-94908DA8B034
=> false (one of the groups is too long)
0FCE98AC-1326-4C79-8EBC-94908DA8B034-
=> false (has a trailing hyphen)
0FCE98AC-1326-4C79-8EBC-94908DA8B034-123
=> false (too many groups)
0FCE98AC13264C798EBC94908DA8B034
=> false (there is no grouping)
правила
- Регулярные выражения не допускаются
- Не допускается буквальное сопоставление с образцом, похожим на регулярное выражение. Например, использование
[0-9a-fA-F]
или других шестнадцатеричных идентификаторов (мы назовем этоn
), а затем сопоставлениеnnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn
илиn[8]-n[4]-n[4]-n[4]-n[12]
недопустимо - Входные данные могут быть взяты из функции
STDIN
или в качестве аргумента функции - Ввод нечувствителен к регистру
- Можно с уверенностью предположить, что ввод не будет содержать перевод строки или перевод строки.
- Входные данные могут содержать любые печатные символы ASCII (включая пробелы)
- Значение truthy должно быть напечатано на
STDOUT
или эквивалент , если вход является действительным UUID - Значение Falsey должно быть напечатано
STDOUT
или эквивалентно, если ввод не является допустимым UUID - Если вместо функции используется функция,
STDOUT
то результатом может быть возвращаемое значение функции - Значение truey / falsey не может быть напечатано
STDERR
. - Применяются стандартные лазейки
- Это код-гольф , поэтому выигрывает самая короткая программа в байтах. Удачи!
Leaderboard
Это фрагмент стека, который генерирует как таблицу лидеров, так и обзор победителей по языкам.
Чтобы убедиться, что ваш ответ появляется, пожалуйста, начните свой ответ с заголовка, используя следующий шаблон уценки
## Language Name, N bytes
Где N - размер вашего сообщения в байтах
Если вы хотите включить в заголовок несколько чисел (например, пролистать старые оценки или включить флаги в счетчик байтов), просто убедитесь, что фактическая оценка является последней цифрой в заголовке.
## Language Name, <s>K</s> X + 2 = N bytes
\h{8}-\h{4}-\h{4}-\h{4}-\h{12}
(где \h
шестнадцатеричная цифра).