Zainspirowany tym cudownym (na podstawie liczby wyświetleń i głosów) wyzwaniem, które moim skromnym zdaniem ma zbyt mało odpowiedzi.
Biorąc pod uwagę (w jakikolwiek sposób) listę ciągów, zwróć (w jakikolwiek sposób) zestaw liter, który po usunięciu z podanych ciągów pozostawia całkowitą długość (tego, co pozostało) ciągów tak małą, jak to możliwe, zachowując każde ciąg unikalny i co najmniej jeden znak.
Przykłady:
Biorąc pod uwagę „Dzień” i „Dzień”; zwraca „ay”, ponieważ podane ciągi będą „D” i „d”, gdy znaki „ay” zostaną usunięte.
Biorąc pod uwagę „Hello World!”, „Hello world.” I „Hello world”; return „Helo Wrd” daje, ponieważ ciągi znaków będą „!”, „w.” i „w”, gdy znaki „Helo Wrd” (ze spacją) zostaną usunięte.
Biorąc pod uwagę „wiek”, „dekadę”, „rok”, „miesiąc”, „tydzień”, „dzień”, „godzinę”, „minutę” i „sekundę”; zwraca „centurdowi”, ponieważ podane słowa będą „y”, „a”, „ya”, „mh”, „k”, „ay”, „h”, „m”, „s”, gdy znaki „centurdowi” " są usunięte.
Kolejność i format zwracanego zestawu nie jest ważna.
Odpowiedzi:
Haskell,
138130 bajtówPrzykład użycia:
f ["century", "decade", "year", "month", "week", "day", "hour", "minute", "second"]
->"centurdoki"
.To podejście z użyciem brutalnej siły.
Edycja: @Seeq pomógł mi zaoszczędzić 8 bajtów. Dzięki!
źródło
map(#s)
, żebyś nie musiał odwracaćnotElem
? EDYCJA: A może nie mógłbyś tego po prostu wstawić?map(#s)
,(#)
musi być zdefiniowany jakoflip (filter . flip notElem)
. Ale oczywiście inklinacja jest znacznie krótsza. Dzięki!Pyth, 34
Pobiera dane wejściowe w formacie
["century", "decade", "year", "month", "week", "day", "hour", "minute", "second"]
. Wskazówki dotyczące gry w golfa są mile widziane, jak zawsze.źródło
Pyth, 24 bajty
Wypróbuj online. Zestaw testowy.
Pamiętaj, że uruchomienie ostatniego przypadku testowego zajmie trochę czasu.
Pobiera dane wejściowe w postaci tablicy, np
["Day", "day"]
.Kolejny interesujący, który znalazłem i poprawiłem isaacg (także 24 bajty):
źródło
-J{sQhlDsM.A#f{ITm-RdQyJ
tutaj