Triplette esadecimali come #ffffff
(bianco) o #3764ef
(bluastro) vengono spesso utilizzate per indicare i colori RGB. Sono costituiti #
da sei cifre esadecimali (0-f) o talvolta da tre cifre in cui si ottiene il colore reale raddoppiando ciascuna cifra. Ad esempio, #fff
è #ffffff
ed #1a8
è #11aa88
.
Purtroppo, quella stenografia a tre cifre era la più golfistica che Internet potesse offrire, fino ad ora .
Scrivi un programma o una funzione che accetta una stringa da 1 a 7 caratteri:
- Il primo personaggio sarà sempre
#
. - Gli altri personaggi saranno sempre cifre esadecimali:
0123456789abcdef
.
L'input è una forma abbreviata di una tripletta esadecimale (o la forma completa se sono dati 7 caratteri). È necessario emettere una tripletta esadecimale completa che espande la scorciatoia di input in base a questi schemi:
Input -> Output
# -> #000000 (black)
#U -> #UUUUUU
#UV -> #UVUVUV
#UVW -> #UUVVWW (usual 3-digit shorthand)
#UVWX -> #UXVXWX
#UVWXY -> #UVWXYY
#UVWXYZ -> #UVWXYZ (not shorthand)
Ognuno di U
, V
, W
, X
, Y
, e Z
può essere qualsiasi cifra esadecimale. L'output è sempre di 7 caratteri.
Per esempio:
Input -> Output
# -> #000000
#0 -> #000000
#4 -> #444444
#f -> #ffffff
#a1 -> #a1a1a1
#0f -> #0f0f0f
#99 -> #999999
#1a8 -> #11aa88
#223 -> #222233
#fff -> #ffffff
#1230 -> #102030
#d767 -> #d77767
#bbb5 -> #b5b5b5
#aabbc -> #aabbcc
#00000 -> #000000
#3764e -> #3764ee
#3764ef -> #3764ef
#123456 -> #123456
#f8f8f8 -> #f8f8f8
Appunti
L'ingresso inizierà sempre con
#
e così pure l'uscita.Puoi presumere che tutte le lettere di input siano minuscole (
abcdef
) o maiuscole (ABCDEF
) come preferisci.Le lettere nell'output possono essere in entrambi i casi come preferisci. Puoi anche mescolare i casi.
Alfa / trasparenza non sono trattati qui (sebbene esistano versioni esadecimali dei colori RGBA).
Vince il codice più breve in byte.
#UVWXY -> #UVWXYY
voce perché consente una rappresentazione a valore singolo per il canale Blue, ma non esiste un'espressione simile per Red e Green (ad esempio se volevo #889071
non posso abbreviare, ma #907188
posso essere ... come #90718
) gli altri funzionano tutti alla grande.
#UVWX -> #UXVXWX
. E 'un tale incoerente e comportamenti arbitrari che è difficile credere che non ci sia un paio di browser in realtà attualmente attuarla.
#RGBA
e #RRGGBBAA
, quindi # 1234 dovrebbe essere letto comergba(17, 34, 51, 0.25)