Вы хотите открыть новый зоопарк. Это будет потрясающе. Но, будучи дешевым скейтбордом, вы хотите позволить себе только трехбуквенных животных (все знают, что стоимость животного пропорциональна длине его имени). Там идет ваша мечта заставить людей заплатить, чтобы увидеть elephant
. Но вдруг у вас есть блестящая идея. Если вы просто поместите животных правильно в загон, вы можете создать оптическую иллюзию elephant
! Вот вид сверху вашего нового "комплекса слонов":
elk
eel
pig
hog
ant
-------- (fence)
^
| viewing direction
Ха-ха, эти доверчивые посетители!
Да, так работает восприятие.
Соревнование
Если дано непустое слово, состоящее только из строчных букв английского алфавита, определите, может ли оно быть образовано наложением следующих 30 трехбуквенных слов животных:
ant ape asp ass bat bee boa cat cod cow
dab dog eel elk emu fly fox gnu hog ide
jay kea kob koi olm owl pig rat ray yak
Да, их более 30, но это хорошее круглое число.
При желании вы можете получить этот список в качестве входных данных (в любом приемлемом формате списка или строки, если он не был предварительно обработан). Вы, вероятно, захотите это сделать, если только чтение и обработка этого списка ввода не обходятся намного дороже, чем жесткое кодирование и сжатие на выбранном вами языке. Обратите внимание, что даже если вы возьмете список в качестве входных данных, вы можете предположить, что он всегда будет именно этим списком, поэтому, если ваш код опирается на переданный список длиной 30 элементов и не содержащий слова с z
, это нормально.
Каждое слово может быть использовано несколько раз. Животные не могут быть отрезаны на концах, только частично скрыты другими животными. Так что ox
это не возможная строка, хотя у нас есть fox
.
Вывод должен быть правдивым, если это возможно, и ложным в противном случае.
Вы можете написать программу или функцию, принимая ввод через STDIN (или ближайшую альтернативу), аргумент командной строки или аргумент функции и выводя результат через STDOUT (или ближайшую альтернативу), возвращаемое значение функции или параметр функции (out).
Ваш код должен обработать любой из тестовых случаев за несколько секунд.
Применяются стандартные правила игры в гольф .
Больше примеров
- Любое одно- или двухбуквенное слово явно ложно.
- Как и любое трехбуквенное слово, которого нет в приведенном выше списке.
- Несмотря на то, что у нас есть
gnu
иrat
,gnat
это ложно, так как нет способа расположить их так, чтобы вы видели только две буквы каждого (мы не хотим разделять животных на трети).
Несколько правдивых примеров:
pigment
ant
bee
olm
pig
antioxidant
fox
koi ide
ant ant
Тестовые случаи
Большинство тестовых случаев были взяты из запуска эталонной реализации со словарем. Последние несколько «слов» были сгенерированы случайным образом и предназначены только для того, чтобы обеспечить достаточную эффективность представлений.
Truthy:
ant
owl
bass
pride
bobcat
peafowl
elephant
hedgehogs
crocodile
antidemocrat
aspidoganoidei
biodegradability
angioelephantiasis
propreantepenultimate
acategnukeaidabeleenaspcodcoidyakwakoasshogattkjaypigkobolcodidaskearaywelkwboaxbeeuflapaspoapemaassaaspeewoglmabiemuwjadogacagnuepigjaycownbatjaemuifoxkeaeekekeagratsseeluejdoghogaolmgpigbeaeelemulasphogjaydabemukgnunueifoasdoglrayyadogpewlayroassasslgnuaspyyakkbokeaodxilopgnuasppigkobelratelkolmakob
koigdgaspslycoyakehrdabowbatdkkeapogkobelrowlyarpidepetlfoxeboaiderbeefoxbgnuapeocowgiecowlkoieeltbategspemuideatdogbeeecatgeaoccattbbeassgnasolkeaflyelkaognubeeabrratoccolmobodoglyelraywelkoxantowleedrayflypeappigogatraoyakccpiganaaspkobabjaspkointantybjbeeanolmuijaylratojaynueidflyjarayabatmmpigtfly
eolmantjkobeeaorayogaowldfoxayeassapibatmflylyraelaspsseolmbelkkaoantlmufodasgnueantaidenthyakcodoxuepigodggnuantatlcatnuuelkpemucbapeeoiahdogplkowletbatdrayarayoaelkgrayodcatgkantewkobeljaybeeyfkobtbdabadoghbatfoxtflygaspdeidogtowlkeaolmyraelfleelejayehogowlccatoxeabiemkobpigolmdkobrcidekyakabboyidep
Falsy:
a
ox
ram
bear
koala
antelope
albatross
zookeeper
salamander
caterpillar
hippopotamus
koigdgaspslycoyakehrdabowbatdkkeapogkobelrowlyarpidepetlfoxeboaiderbeefoxbgnuapeocowgiecowlkoieeltbategspemuideatdogbeezcatgeaoccattbbeassgnasolkeaflyelkaognubeeabrratoccolmobodoglyelraywelkoxantowleedrayflypeappigogatraoyakccpiganaaspkobabjaspkointantybjbeeanolmuijaylratojaynueidflyjarayabatmmpigtfly
koigdgaspslycoyakehrdabowbatdkkeapogkobelrowlyarpidepetlfoxeboaiderbeefoxbgnuapeocowgiecowlkoieeltbategspemuideatdogbeeecatgeaoccattbbeassgnasolkeaflxelkaognubeeabrratoccolmobodoglyelraywelkoxantowleedrayflypeappigogatraoyakccpiganaaspkobabjaspkointantybjbeeanolmuijaylratojaynueidflyjarayabatmmpigtfly
beyeodpgspeclxlkbkaylldnceepkocbdmymsaogsowpbawbauaioluaaagaetdoaoialeoxaagspoelegflpylptylnolnatrjabaorkdteeydloiebbptatdtfdfgoodtbkoafmounbduaffcrfelcnawmxaskgaoenaattbaobgbgabnhkesbgaaaaotafkiiieatworginaeowaehuddegooaalowaoososaksahoimkulbtoadyyelkcmkacbuostadppcuglbnmotedfgfkoleldonknemomnmoutykg
You may optionally receive this list as input
- Значит ли это, что это не засчитывается в счет, в то время как жесткое программирование это будет?