Ispirato da questa catena di commenti ...
Voglio
enklact
uscire da questa sfida ma non posso ...@ETHproductions to enklact (v): per implementare una tabella di ricerca usando una sottosezione composta da elementi unici.
Enklacting è un modo molto utile per comprimere una tabella di ricerca. Ad esempio, supponiamo che tu abbia il seguente elenco di colori:
red
green
blue
yellow
purple
orange
Se vuoi essere in grado di prendere un colore come input e restituire il suo indice in questo elenco, c'è ovviamente il modo più semplice:
["red", "green", "blue", "yellow", "purple", "orange"].index(input())
Ma c'è un modo per farlo in meno byte:
"rgbypo".index(input()[0])
Questo funziona perché il primo (o 0 °) indice di ogni stringa è univoco. Questo esempio è ovvio, ma a volte è un po 'più difficile. E se volessimo creare una tabella di ricerca per questo elenco?
Sweet Onion Chicken Teriyaki
Oven Roasted Chicken
Turkey Breast
Italian BMT
Tuna
Black Forest Ham
Meatball Marinara
In questo caso, non possiamo farlo:
"SOTITBM".index(input()[0])
perché ci sono due input diversi che iniziano con a 'T'
, vale a dire "Tonno" e "Turchia". Dobbiamo guardare un indice diverso. Se guardi il quarto indice di ogni stringa, noterai che sono tutti unici. Quindi possiamo farlo ...
"enklact".index(input()[3])
In questo caso, la "stringa enklaction" è "enklact".
Questo ci porta alla sfida di oggi ...
Dato un elenco di stringhe, restituisce qualsiasi stringa di enklaction valida. O in altre parole, dato un elenco di stringhe, restituisce qualsiasi nuova stringa in cui ogni lettera è unica e la stringa viene formata unendo la lettera i di ogni stringa.
Se non esiste una stringa enklaction valida, l'invio deve invece restituire una stringa vuota o un valore di falsy coerente. Come al solito, sono consentite funzioni o programmi completi e i formati di input / output sono permissivi (entro limiti ragionevoli).
Ogni stringa conterrà solo ASCII stampabile e questa sfida fa distinzione tra maiuscole e minuscole.
Questo è code-golf , quindi prova a scrivere il programma più breve possibile nella tua lingua preferita!
Casi test
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:
""