Masz zestaw płytek z symbolami z układu okresowego pierwiastków. Każdy symbol pojawia się raz. Zastanawiasz się nad słowami, ale chcesz wiedzieć, czy to możliwe, czy nie.
Wyzwanie
Napisz program w swoim ulubionym języku, który pobierze ciąg znaków jako parametr wejściowy. Możesz założyć, że dane wejściowe nie są puste, nie zawierają spacji i składają się ze znaków ASCII.
Twój program powinien pobrać ten ciąg i wygenerować prawdziwą wartość, jeśli słowo to może składać się z symboli z okresowej tablicy elementów, oraz wartość falsey, jeśli słowo nie może.
Aby utrudnić to wyzwanie, nie możesz użyć symbolu dwa razy. Więc jeśli używasz azotu N
, nie możesz używać go N
ponownie w tym samym słowie.
Zasady
Standardowe luki są niedozwolone. Możesz używać symboli z pierwiastków 1-118 (Wodór do Ununoctium). Możesz znaleźć listę wszystkich elementów tutaj . Możesz odczytać listę symboli z pliku lub argumenty wejściowe, jeśli chcesz.
Przypadki testowe:
Laos - true (LaOs)
Amputation - true (AmPuTaTiON)
Heinous - true (HeINoUS)
Hypothalamus - true (HYPoThAlAmUS)
Singapore - true (SiNGaPoRe)
Brainfuck - true (BRaInFUCK)
Candycane - false
Jest to wyzwanie dla golfa kodowego, wygrywa najkrótszy kod.
PRZED ZAMKNIĘCIEM JAKO DUPLIKAT: Chociaż może się to wydawać podobne do tego wyzwania , wydaje mi się, że jest inaczej, ponieważ nie jest to „Wygeneruj listę wszystkich słów, które są możliwe z układu okresowego”, to „Weź dowolne dane wejściowe i ustal, czy można to zrobić z układu okresowego ”
Odpowiedzi:
05AB1E, 16 bajtów
Wyjaśniono
Ostrzeżenie: bardzo wolno. Polecam testowanie na znacznie mniejszym podzbiorze elementów w tłumaczu online.
Pobiera listę elementów jako pierwszy argument.
Testuje słowo jako drugi argument.
Zwraca 1 dla wartości true i 0 dla wartości false.
Wypróbuj online na małym podzbiorze elementów
źródło
Brachylog , 7 bajtów
Wywołaj z listą symboli (wszystkie małe litery) jako Wejście, a słowem jako Wyjście, np
run_from_atom('spc~@l.', ["he":"n":"o":"li"], "Nohe").
.Ostrzeżenie: jest to wyjątkowo nieefektywne, gdy wszystkie symbole znajdują się na liście.
Wyjaśnienie
źródło
JavaScript (Firefox 48 lub wcześniejszy), 103 bajty
źródło
Pyth - 13 bajtów
Sprawdza tylko, czy jakakolwiek partycja małych liter ma wszystkie części układu okresowego.
Na urządzeniach mobilnych nie można skonfigurować rzeczywistego pakietu testowego, ale spróbuj tego .
źródło
Pyth, 11 bajtów
Wypróbuj online. Zestaw testowy.
Napisane na moim telefonie, ale powinny działać. Bardzo wolny dla dużej liczby elementów lub długiego sznurka.
Wyjaśnienie
./
) z input (z
).S
) każdą partycję (M
).R
) sprawdź, czy znajduje się ona w (}
) liście wszystkich podzbiorów (y
) sortowanej (S
) tabeli okresowej podanej jako input (Q
).s
) wynikowa lista wartości logicznych.źródło