Os trigêmeos hexadecimais como #ffffff
(branco) ou #3764ef
(azulado) são frequentemente usados para denotar cores RGB. Eles consistem em #
seguidos de seis dígitos hexadecimais (0-f) ou, às vezes, três dígitos em que a cor real é obtida dobrando cada dígito. Por exemplo, #fff
é #ffffff
e #1a8
é #11aa88
.
Infelizmente, esse atalho de três dígitos era o golfista que a internet tinha a oferecer, até agora .
Escreva um programa ou função que tenha uma sequência de 1 a 7 caracteres:
- O primeiro caractere sempre será
#
. - Os outros personagens será sempre dígitos hexadecimais:
0123456789abcdef
.
A entrada é uma forma abreviada de um trigêmeo hexadecimal (ou a forma completa se forem fornecidos 7 caracteres). Você precisa produzir um trigêmeo hexadecimal completo que expanda a taquigrafia de entrada com base nesses padrões:
Input -> Output
# -> #000000 (black)
#U -> #UUUUUU
#UV -> #UVUVUV
#UVW -> #UUVVWW (usual 3-digit shorthand)
#UVWX -> #UXVXWX
#UVWXY -> #UVWXYY
#UVWXYZ -> #UVWXYZ (not shorthand)
Cada um U
, V
, W
, X
, Y
, e Z
pode ser qualquer dígito hexadecimal. A saída é sempre 7 caracteres.
Por exemplo:
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
Notas
A entrada sempre começará com
#
e a saída também.Você pode assumir que todas as letras de entrada são minúsculas (
abcdef
) ou maiúsculas (ABCDEF
) como preferir.As letras na saída podem estar nos dois casos, como você preferir. Você pode até misturar casos.
Alfa / transparência não é tratada aqui (embora existam versões hexadecimais de cores RGBA).
O código mais curto em bytes vence.
#UVWXY -> #UVWXYY
entrada porque ela permite uma representação de valor único para o canal Blue, mas não há expressão semelhante para vermelho e verde (por exemplo, se eu quisesse, #889071
não posso abreviar, mas #907188
posso ser ... como #90718
) os outros tudo funciona muito bem.
#UVWX -> #UXVXWX
. É uma inconsistente tal e comportamento arbitrário que é difícil de acreditar que não há um par de navegador que realmente atualmente implementá-lo.
#RGBA
e #RRGGBBAA
, portanto, o # 1234 deve ser lido comorgba(17, 34, 51, 0.25)