Dato un input di stringa, scrivere un programma che stampa un valore di verità su STDOUT o equivalente se l'input è un UUID valido, senza usare regex.
Un UUID valido è
32 cifre esadecimali, visualizzate in cinque gruppi separati da trattini, nella forma 8-4-4-4-12 per un totale di 36 caratteri (32 caratteri alfanumerici e quattro trattini).
Casi test
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)
Regole
- Le espressioni regolari non sono consentite
- Non è consentita la corrispondenza di schemi letterali che è come una regex. Ad esempio, l'utilizzo
[0-9a-fA-F]
o altri identificatori esadecimali (chiameremo queston
) e quindi la corrispondenzannnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn
on[8]-n[4]-n[4]-n[4]-n[12]
non è consentita - L'input può essere preso da
STDIN
o come argomento di una funzione - L'input non fa distinzione tra maiuscole e minuscole
- È sicuro presumere che l'input non conterrà avanzamenti di riga o newline.
- L'input può contenere qualsiasi carattere ASCII stampabile (spazi inclusi)
- Un valore di verità deve essere stampato
STDOUT
o equivalente se l'input è un uuid valido - Un valore di falso deve essere stampato
STDOUT
o equivalente se l'input non è un uuid valido - Se si utilizza una funzione, anziché utilizzare
STDOUT
, l'output può essere il valore restituito della funzione - Non è possibile stampare il valore di verità / falsità
STDERR
. - Si applicano scappatoie standard
- Questo è code-golf , quindi vince il programma più breve in byte. In bocca al lupo!
Classifica
Questo è un frammento di stack che genera sia una classifica che una panoramica dei vincitori per lingua.
Per assicurarti che la tua risposta venga visualizzata, inizia la tua risposta con un titolo usando il seguente modello Markdown
## Language Name, N bytes
Dove N è la dimensione, in byte, dell'invio
Se vuoi includere più numeri nella tua intestazione (ad esempio, colpendo i vecchi punteggi o includendo i flag nel conteggio dei byte), assicurati solo che il punteggio effettivo sia l' ultimo numero nella tua intestazione
## Language Name, <s>K</s> X + 2 = N bytes
\h{8}-\h{4}-\h{4}-\h{4}-\h{12}
(dove \h
è una cifra esadecimale) sono valide.