Inspirado por esta cadeia de comentários ...
Quero
enklact
sair deste desafio, mas não posso ...@ETHproductions para enklact (v): para implementar uma tabela de pesquisa usando uma subseção que consiste em elementos exclusivos.
Enklacting é uma maneira muito útil de compactar uma tabela de pesquisa. Por exemplo, digamos que você tenha a seguinte lista de cores:
red
green
blue
yellow
purple
orange
Se você deseja pegar uma cor como entrada e retornar seu índice nesta lista, obviamente existe a maneira mais direta:
["red", "green", "blue", "yellow", "purple", "orange"].index(input())
Mas há uma maneira de fazer isso com menos bytes:
"rgbypo".index(input()[0])
Isso funciona porque o primeiro (ou 0'th) índice de cada seqüência de caracteres é exclusivo. Este exemplo é óbvio, mas às vezes é um pouco mais difícil. E se quiséssemos criar uma tabela de pesquisa para esta lista?
Sweet Onion Chicken Teriyaki
Oven Roasted Chicken
Turkey Breast
Italian BMT
Tuna
Black Forest Ham
Meatball Marinara
Nesse caso, não podemos fazer isso:
"SOTITBM".index(input()[0])
porque existem duas entradas diferentes que começam com a 'T'
, a saber "Atum" e "Turquia". Devemos olhar para um índice diferente. Se você olhar para o quarto índice de cada string, notará que eles são todos únicos. Para que possamos fazer isso ...
"enklact".index(input()[3])
Nesse caso, a "cadeia de caracteres de enklaction" é "enklact".
Isso nos leva ao desafio de hoje ...
Dada uma lista de cadeias, retorne qualquer cadeia de enklaction válida. Ou, em outras palavras, dada uma lista de cadeias, retorne qualquer nova cadeia em que cada letra seja única e a cadeia seja formada juntando a i-ésima letra de cada cadeia.
Se não houver uma sequência de enklaction válida, seu envio deverá retornar uma sequência vazia ou um valor de falsy consistente. Como de costume, funções ou programas completos são permitidos e os formatos de entrada / saída são permissivos (dentro do motivo).
Cada sequência conterá apenas ASCII imprimível e esse desafio diferencia maiúsculas de minúsculas.
Isso é código-golfe , então tente escrever o programa mais curto possível no seu idioma preferido!
Casos de teste
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:
""