У вас есть набор плиток с символами из периодической таблицы. Каждый символ появляется один раз. Вы придумываете слова, чтобы сделать, но вы хотите знать, возможно ли это или нет.
Соревнование
Напишите программу на вашем любимом языке, которая будет принимать строку в качестве входного параметра. Вы можете предположить, что ввод не нулевой, не имеет пробелов и состоит из символов ASCII.
Ваша программа должна взять эту строку и вывести истинное значение, если это слово может состоять из символов из периодической таблицы элементов, и значение Falsey, если слово не может.
Чтобы сделать этот вызов более сложным, вы не можете использовать символ дважды. Поэтому, если вы используете азот, N
вы не можете использовать его N
снова в одном и том же слове.
правила
Стандартные лазейки не допускаются. Вы можете использовать символы из элементов 1-118 (от водорода до унуноция). Вы можете найти список всех элементов здесь . Вы можете прочитать список символов из файла или ввести аргументы, если хотите.
Тестовые случаи:
Laos - true (LaOs)
Amputation - true (AmPuTaTiON)
Heinous - true (HeINoUS)
Hypothalamus - true (HYPoThAlAmUS)
Singapore - true (SiNGaPoRe)
Brainfuck - true (BRaInFUCK)
Candycane - false
Это соревнование по коду, самый короткий код выигрывает.
ПЕРЕД ТЕМ, ЧТОБЫ ВЫКРЫТЬ КАК ДУБЛИКАТ: Хотя это может показаться схожим с этим испытанием , я чувствую, что оно отличается от того, что это не «Генерация списка всех слов, которые возможны из периодической таблицы», это «Возьмите произвольный ввод и определите, это может быть сделано из периодической таблицы "
Ответы:
05AB1E, 16 байтов
Разъяснения
Предупреждение: очень медленно. Я рекомендую тестировать на гораздо меньшем подмножестве элементов в онлайн-переводчике.
Принимает список элементов в качестве первого аргумента.
Принимает слово для проверки в качестве второго аргумента.
Возвращает 1 для истины и 0 для ложных.
Попробуйте онлайн на небольшом подмножестве элементов
источник
Брахилог , 7 байт
Вызов со списком символов (все строчные буквы) в качестве ввода и слова в качестве вывода, например
run_from_atom('spc~@l.', ["he":"n":"o":"li"], "Nohe").
.Предупреждение: это крайне неэффективно, когда все символы в списке.
объяснение
источник
JavaScript (Firefox 48 или более ранняя версия), 103 байта
источник
Pyth - 13 байт
Просто проверяет, есть ли в любом разделе входных данных в нижнем регистре все части периодической таблицы.
На мобильном телефоне, поэтому не удалось настроить реальный набор тестов, но попробуйте это .
источник
Pyth, 11 байт
Попробуйте онлайн. Тестирование.
Написано на моем телефоне, но должно работать. Очень медленно для большого количества элементов или длинной строки.
объяснение
./
) ввода (z
).S
) каждый раздел (M
).R
) посмотрите, есть ли в (}
) список всех подмножествy
(S
) периодической таблицы sorted ( ), заданной как input (Q
).s
) результирующий список логических значений.источник