#ffffff
(白)や#3764ef
(青みがかった)などの16進数のトリプレットは、RGBカラーを表すためによく使用されます。これらは、#
6桁の16進数(0〜f)、または実際の色が各桁を2倍にすることで得られる3桁で構成される場合があります。たとえば、#fff
is #ffffff
および#1a8
is #11aa88
です。
残念なことに、その3桁の速記は、今までインターネットが提供しなければならなかったゴルフの中で一番でした。
1〜7文字の文字列を受け取るプログラムまたは関数を作成します。
- 最初の文字は常にです
#
。 - 他の文字は常に16進数です:
0123456789abcdef
。
入力は、16進トリプレットの短縮形(または7文字が指定されている場合は完全形)です。次のパターンに基づいて入力の短縮形を展開する完全な16進数のトリプレットを出力する必要があります。
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
任意の16進数字であってもよいです。出力は常に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
)であると想定できます。出力の文字は、どちらの場合でもお好みに応じて変更できます。ケースを混在させることもできます。
アルファ/透明度はここでは扱いません(ただし、RGBAカラーの16進バージョンがあります)。
バイト単位の最短コードが優先されます。
#UVWXY -> #UVWXYY
Blueチャネルの単一値表現を許可するため、このエントリには満足していませんが、RedとGreenに同様の表現はありません(たとえば、#889071
省略したくない場合は#907188
... asにすることができます#90718
)すべてうまくいきます。
#UVWX -> #UXVXWX
。これは非常に一貫性のないarbitrary意的な動作であるため、実際に実装しているブラウザが2つも存在しないと考えるのは困難です。
#RGBA
and #RRGGBBAA
があるため、#1234は次のように読む必要がありますrgba(17, 34, 51, 0.25)