十六进制三胞胎(例如#ffffff
(白色)或#3764ef
(蓝色))通常用于表示RGB颜色。它们由#
六个十六进制数字(0-f)或有时由三个数字组成,其中通过将每个数字加倍获得真实色彩。例如,#fff
is #ffffff
和#1a8
is #11aa88
。
可悲的是,这三个数字速记是互联网有可能的报价,golfiest 直到现在。
编写一个包含1到7个字符的字符串的程序或函数:
- 第一个字符将始终为
#
。 - 其他字符将始终为十六进制数字:
0123456789abcdef
。
输入是十六进制三元组的简写形式(如果给出7个字符,则为完整形式)。您需要输出完整的十六进制三元组,以根据以下模式扩展输入速记:
Input -> Output
# -> #000000 (black)
#U -> #UUUUUU
#UV -> #UVUVUV
#UVW -> #UUVVWW (usual 3-digit shorthand)
#UVWX -> #UXVXWX
#UVWXY -> #UVWXYY
#UVWXYZ -> #UVWXYZ (not shorthand)
每一个U
,V
,W
,X
,Y
,和Z
可以是任何十六进制数字。输出始终为7个字符。
例如:
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
笔记
输入将始终以开头,
#
输出也必须以。您可以根据需要假定所有输入字母均为小写(
abcdef
)或大写(ABCDEF
)。您可以根据需要选择输出中的字母。您甚至可以混合使用大小写。
这里不处理Alpha /透明度(尽管有RGBA颜色的十六进制版本)。
以字节为单位的最短代码获胜。
#UVWXY -> #UVWXYY
条目,因为它允许Blue通道使用单值表示,但是Red和Green没有类似的表达(例如,如果我希望#889071
我不能缩写,但是#907188
可以...和#90718
其他形式一样)一切都很好。
#UVWX -> #UXVXWX
。这种不一致和任意的行为,很难让人相信目前没有几个浏览器真正实现它。
#RGBA
和#RRGGBBAA
,因此#1234应该读为rgba(17, 34, 51, 0.25)