このコメントチェーンに触発されて ...
私
enklact
はこの挑戦から抜け出したいが、私はできない...@ETHproductions to enklact(v):一意の要素で構成されるサブセクションを使用してルックアップテーブルを実装します。
Enklactingは、ルックアップテーブルを圧縮する非常に便利な方法です。たとえば、次の色のリストがあるとします。
red
green
blue
yellow
purple
orange
入力として色を取り、このリストのインデックスを返すことができるようにしたい場合は、明らかに簡単な方法があります。
["red", "green", "blue", "yellow", "purple", "orange"].index(input())
しかし、より少ないバイトでこれを行う方法があります:
"rgbypo".index(input()[0])
これは、各文字列の最初の(または0番目の)インデックスが一意であるため機能します。この例は明らかですが、時には少し難しい場合があります。このリストのルックアップテーブルを作成する場合はどうなりますか?
Sweet Onion Chicken Teriyaki
Oven Roasted Chicken
Turkey Breast
Italian BMT
Tuna
Black Forest Ham
Meatball Marinara
この場合、これはできません。
"SOTITBM".index(input()[0])
a 'T'
で始まる2つの異なる入力、つまり「Tuna」と「Turkey」があるためです。別のインデックスを見る必要があります。各文字列の4番目のインデックスを見ると、それらはすべて一意であることがわかります。だから私たちはこれを行うことができます...
"enklact".index(input()[3])
この場合、「enklaction string」は「enklact」です。
それが今日の挑戦につながります...
文字列のリストを指定すると、有効なenklaction文字列が返されます。または、言い換えると、文字列のリストを指定すると、各文字が一意であり、各文字列のi番目の文字を結合して文字列が形成される新しい文字列を返します。
有効なenklaction文字列が存在しない場合は、代わりに空の文字列または一貫した偽の値を送信する必要があります。いつものように、関数または完全なプログラムのいずれかが許可されており、入出力形式は許容範囲内です(理由はありますが)。
各文字列には印刷可能なASCIIのみが含まれ、このチャレンジでは大文字と小文字が区別されます。
これはcode-golfなので、選択した言語で可能な限り短いプログラムを作成してください。
テストケース
Input:
Programming
Puzzles
Code
Golf
Output (any one of these):
"ozdl"
"gzef"
Input:
the quick
brown fox
jumped over
lazy dogs
Output:
"tbjl"
"hrua"
"eomz"
" wpy"
"qne "
"if o"
"kxvs"
Note that "u dd" and "coog" are not valid.
Input:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Output:
""
Input:
AbC
aBc
bbC
Output:
"Aab"
Input:
@#$%^_
Hello_World
How are you?
Output:
"#eo"
"$lw"
"%l "
"^oa"
Input:
a
ab
ac
Output:
""