Zainspirowany łańcuchem komentarzy ...
Chcę
enklact
wyjść z tego wyzwania, ale nie mogę ...@ETHproductions to enklact (v): aby zaimplementować tabelę wyszukiwania za pomocą podsekcji składającej się z unikalnych elementów.
Enklacting to bardzo przydatny sposób kompresji tabeli odnośników. Załóżmy na przykład, że masz następującą listę kolorów:
red
green
blue
yellow
purple
orange
Jeśli chcesz mieć kolor jako dane wejściowe i zwrócić jego indeks na tej liście, jest oczywiście prosty sposób:
["red", "green", "blue", "yellow", "purple", "orange"].index(input())
Ale jest sposób, abyśmy mogli to zrobić w sposób mniej bajtowy:
"rgbypo".index(input()[0])
Działa to, ponieważ pierwszy (lub 0-ty) indeks każdego łańcucha jest unikalny. Ten przykład jest oczywisty, ale czasem jest trochę trudniejszy. Co jeśli chcielibyśmy stworzyć tabelę odnośników dla tej listy?
Sweet Onion Chicken Teriyaki
Oven Roasted Chicken
Turkey Breast
Italian BMT
Tuna
Black Forest Ham
Meatball Marinara
W takim przypadku nie możemy tego zrobić:
"SOTITBM".index(input()[0])
ponieważ istnieją dwa różne dane wejściowe rozpoczynające się od 'T'
, a mianowicie „Tuńczyk” i „Turcja”. Musimy spojrzeć na inny indeks. Jeśli spojrzysz na czwarty indeks każdego łańcucha, zauważysz, że wszystkie są unikalne. Więc możemy to zrobić ...
"enklact".index(input()[3])
W tym przypadku „ciąg enklaction” to „enklact”.
To prowadzi nas do dzisiejszego wyzwania ...
Biorąc pod uwagę listę ciągów, zwróć dowolny prawidłowy ciąg enklaction. Innymi słowy, biorąc pod uwagę listę ciągów, zwróć dowolny nowy ciąg, w którym każda litera jest unikalna, a ciąg jest tworzony przez połączenie i-tej litery każdego ciągu.
Jeśli nie ma prawidłowego ciągu enklaction, zgłoszenie musi zwrócić pusty ciąg lub spójną wartość falsy. Jak zwykle dozwolone są zarówno funkcje, jak i pełne programy, a formaty wejścia / wyjścia są dozwolone (z uzasadnionego powodu).
Każdy ciąg będzie zawierał tylko ASCII do wydruku, a w tym wyzwaniu rozróżniana jest wielkość liter.
To jest golf golfowy , więc spróbuj napisać najkrótszy możliwy program w wybranym przez siebie języku!
Przypadki testowe
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:
""