Los tripletes hexadecimales como #ffffff
(blanco) o #3764ef
(azulado) se usan a menudo para denotar colores RGB. Consisten en #
seguidos de seis dígitos hexadecimales (0-f), o, a veces, tres dígitos donde se obtiene el color real duplicando cada dígito. Por ejemplo, #fff
es #ffffff
y #1a8
es #11aa88
.
Lamentablemente, esa taquigrafía de tres dígitos era la más elegante que Internet tenía para ofrecer, hasta ahora .
Escriba un programa o función que tome una cadena de 1 a 7 caracteres:
- El primer carácter será siempre
#
. - Los otros personajes siempre estarán dígitos hexadecimales:
0123456789abcdef
.
La entrada es una forma abreviada de un triplete hexadecimal (o la forma completa si se dan 7 caracteres). Debe generar un triplete hexadecimal completo que expanda la taquigrafía de entrada en función de estos patrones:
Input -> Output
# -> #000000 (black)
#U -> #UUUUUU
#UV -> #UVUVUV
#UVW -> #UUVVWW (usual 3-digit shorthand)
#UVWX -> #UXVXWX
#UVWXY -> #UVWXYY
#UVWXYZ -> #UVWXYZ (not shorthand)
Cada uno de U
, V
, W
, X
, Y
, y Z
puede ser cualquier dígito hexadecimal. La salida es siempre de 7 caracteres.
Por ejemplo:
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
La entrada siempre comenzará
#
y también la salida.Puede suponer que todas las letras de entrada son minúsculas (
abcdef
) o mayúsculas (ABCDEF
) como prefiera.Las letras en la salida pueden estar en cualquier caso como prefiera. Incluso puedes mezclar casos.
Alfa / transparencia no se trata aquí (aunque hay versiones hexadecimales de colores RGBA).
El código más corto en bytes gana.
#UVWXY -> #UVWXYY
entrada porque permite una representación de un solo valor para el canal Azul, pero no hay una expresión similar para Rojo y Verde (por ejemplo, si quisiera #889071
no puedo abreviar, pero #907188
puedo ser ... como #90718
) los otros Todo funciona muy bien.
#UVWX -> #UXVXWX
. Es un comportamiento tan inconsistente y arbitrario que es difícil creer que no haya un par de navegadores que lo implementen actualmente.
#RGBA
y #RRGGBBAA
, por lo tanto, # 1234 debe leerse comorgba(17, 34, 51, 0.25)