Các bộ ba hex như #ffffff
(trắng) hoặc #3764ef
(xanh lam) thường được sử dụng để biểu thị màu RGB. Chúng bao gồm #
sáu chữ số thập lục phân (0-f) hoặc đôi khi là ba chữ số trong đó màu thực có được bằng cách nhân đôi mỗi chữ số. Ví dụ, #fff
là #ffffff
và #1a8
là #11aa88
.
Đáng buồn thay, tốc ký ba chữ số đó là golf tốt nhất mà Internet phải cung cấp, cho đến bây giờ .
Viết chương trình hoặc hàm có chuỗi từ 1 đến 7 ký tự:
- Nhân vật đầu tiên sẽ luôn như vậy
#
. - Các ký tự khác sẽ luôn là các chữ số thập lục phân :
0123456789abcdef
.
Đầu vào là một dạng tốc ký của bộ ba hex (hoặc dạng đầy đủ nếu có 7 ký tự). Bạn cần xuất ra một bộ ba hex đầy đủ để mở rộng tốc ký đầu vào dựa trên các mẫu sau:
Input -> Output
# -> #000000 (black)
#U -> #UUUUUU
#UV -> #UVUVUV
#UVW -> #UUVVWW (usual 3-digit shorthand)
#UVWX -> #UXVXWX
#UVWXY -> #UVWXYY
#UVWXYZ -> #UVWXYZ (not shorthand)
Mỗi U
, V
, W
, X
, Y
, và Z
có thể là bất kỳ chữ số thập lục phân. Đầu ra luôn là 7 ký tự.
Ví dụ:
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
Ghi chú
Đầu vào sẽ luôn bắt đầu bằng
#
và do đó phải đầu ra.Bạn có thể giả sử tất cả các chữ cái đầu vào là chữ thường (
abcdef
) hoặc chữ hoa (ABCDEF
) nếu muốn.Chữ cái trong đầu ra có thể là một trong hai trường hợp bạn muốn. Bạn thậm chí có thể trộn các trường hợp.
Alpha / độ trong suốt không được xử lý ở đây (mặc dù có các phiên bản hex của màu RGBA).
Mã ngắn nhất tính bằng byte thắng.
#UVWXY -> #UVWXYY
mục nhập vì nó cho phép biểu thị một giá trị duy nhất cho kênh Blue, nhưng không có biểu thức tương tự cho Red và Green (ví dụ: nếu tôi muốn #889071
tôi không thể viết tắt, nhưng #907188
có thể ... như #90718
) Tất cả đều làm việc tuyệt vời.
#UVWX -> #UXVXWX
. Đó là một hành vi không nhất quán và tùy tiện đến mức khó tin rằng không có một vài trình duyệt thực sự hiện đang thực hiện nó.
#RGBA
và #RRGGBBAA
, vì vậy # 1234 nên được đọc làrgba(17, 34, 51, 0.25)