Dada uma entrada de sequência, escreva um programa que imprima um valor de verdade para STDOUT ou equivalente se a entrada for um UUID válido, sem usar expressões regulares.
Um UUID válido é
32 dígitos hexadecimais, exibidos em cinco grupos separados por hífens, no formato 8-4-4-4-12, para um total de 36 caracteres (32 caracteres alfanuméricos e quatro hífens).
Casos de teste
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)
Regras
- Expressões regulares não são permitidas
- Correspondência de padrão literal que é como uma regex não é permitida. Por exemplo, usando
[0-9a-fA-F]
ou outros identificadores hexadecimais (nós chamaremos isson
) e, em seguida, correspondendonnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn
oun[8]-n[4]-n[4]-n[4]-n[12]
não é permitido - A entrada pode ser retirada de
STDIN
ou como argumento para uma função - A entrada não diferencia maiúsculas de minúsculas
- É seguro assumir que a entrada não conterá feeds de linha ou novas linhas.
- A entrada pode conter caracteres ASCII imprimíveis (espaços incluídos)
- Um valor de verdade deve ser impresso
STDOUT
ou equivalente se a entrada for um uuid válido - Um valor de falsey deve ser impresso
STDOUT
ou equivalente se a entrada não for um uuid válido - Se estiver usando uma função, em vez de usar
STDOUT
, a saída pode ser o valor de retorno da função - O valor de verdade / falsey não pode ser impresso em
STDERR
. - Aplicam-se brechas padrão
- Isso é código-golfe , então o programa mais curto em bytes vence. Boa sorte!
Entre os melhores
Este é um snippet de pilha que gera um placar de líderes e uma visão geral dos vencedores por idioma.
Para garantir que sua resposta seja exibida, inicie sua resposta com um título, usando o seguinte modelo de remarcação
## Language Name, N bytes
Onde N é o tamanho, em bytes, do seu envio
Se você deseja incluir vários números no seu cabeçalho (por exemplo, localizar pontuações antigas ou incluir sinalizadores na contagem de bytes), verifique se a pontuação real é o último número no cabeçalho
## Language Name, <s>K</s> X + 2 = N bytes
\h{8}-\h{4}-\h{4}-\h{4}-\h{12}
(onde \h
é um dígito hexadecimal) são válidas.