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é #ffffffe #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 Zpode 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 -> #UVWXYYentrada 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, #889071não posso abreviar, mas #907188posso 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.
#RGBAe #RRGGBBAA, portanto, o # 1234 deve ser lido comorgba(17, 34, 51, 0.25)