Inspiré par cette chaîne de commentaires ...
Je veux
enklact
sortir de ce défi mais je ne peux pas ...@ETHproductions to enklact (v): pour implémenter une table de correspondance en utilisant une sous-section composée d'éléments uniques.
Enklacting est un moyen très utile de compresser une table de recherche. Par exemple, supposons que vous ayez la liste de couleurs suivante:
red
green
blue
yellow
purple
orange
Si vous voulez pouvoir prendre une couleur en entrée et retourner son index dans cette liste, il existe évidemment un moyen simple:
["red", "green", "blue", "yellow", "purple", "orange"].index(input())
Mais il y a un moyen de faire cela de manière beaucoup moins d'octets:
"rgbypo".index(input()[0])
Cela fonctionne car le premier (ou 0ème) index de chaque chaîne est unique. Cet exemple est évident, mais parfois c'est un peu plus difficile. Et si nous voulions créer une table de consultation pour cette liste?
Sweet Onion Chicken Teriyaki
Oven Roasted Chicken
Turkey Breast
Italian BMT
Tuna
Black Forest Ham
Meatball Marinara
Dans ce cas, nous ne pouvons pas faire ceci:
"SOTITBM".index(input()[0])
parce qu'il y a deux entrées différentes qui commencent par un 'T'
, à savoir "Thon" et "Turquie". Nous devons regarder un index différent. Si vous regardez le 4ème index de chaque chaîne, vous remarquerez qu'ils sont tous uniques. Donc on peut faire ça ...
"enklact".index(input()[3])
Dans ce cas, la "chaîne enklaction" est "enklact".
Cela nous conduit au défi d'aujourd'hui ...
Étant donné une liste de chaînes, renvoyez toute chaîne enklaction valide. Ou, en d'autres termes, étant donné une liste de chaînes, renvoyez toute nouvelle chaîne où chaque lettre est unique et la chaîne est formée en joignant la ième lettre de chaque chaîne.
S'il n'y a pas de chaîne enklaction valide, votre soumission doit renvoyer une chaîne vide ou une valeur de cohérence cohérente. Comme d'habitude, les fonctions ou les programmes complets sont autorisés, et les formats d'entrée / sortie sont permissifs (dans des limites raisonnables).
Chaque chaîne ne contiendra que de l'ASCII imprimable, et ce défi est sensible à la casse.
C'est du code-golf , alors essayez d'écrire le programme le plus court possible dans la langue de votre choix!
Cas de 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:
""