Arka fon
Üç yıl önce, bu adam Tom Murphy bir portmanteau fikrini bir dildeki tüm kelimelere genişletmeyi başardı ve buna portmantout ( portmanteau plus tout [ herkes için Fransızca ]) dedi . İngilizceyi 108,709 kelimelik bir liste olarak tanımlayarak, aşağıdaki iki özelliğe sahip 611,820 harflik bir sıra bulmayı başardı:
- Her İngilizce sözcük dizede bulunur.
- Dizede herhangi iki bitişik harf içeren bazı semtler İngilizce bir kelimedir.
İşte bu portmantoutun bulunabileceği bir sayfaya bağlantı (video açıklamasıyla birlikte).
Bir portmantout
Portmantoutun iki özelliğinden birincisini anlamak kolaydır. İkincisi biraz açıklama gerektirebilir.
Temel olarak, kelimeler örtüşmelidir. "golfcode" hiçbir zaman İngilizce portmantout'ta görünmeyecektir, çünkü orada "fc" kelimesini içeren bir kelime yoktur. Ancak, bir portmantout "codegolf" bulabilirsiniz, "ego" için boşluk köprüler (ve diğer tüm harf çiftleri "kod" veya "golf" bulunmaktadır).
Senin görevin:
Dizelerin listesini alan ve listenin herhangi bir portmantout'unu döndüren bir program veya işlev yazın.
Bu Python 3 kodu bir portmantout'u doğrular.
Test senaryoları
Tüm listeler sırasız; yani,
{"code", "ego", "golf"} -> "codegolf"
{"more", "elm", "maniac"} -> "morelmaniac" or "morelmorelmaniac" or "morelmorelmorelmaniac" or...
Would a morelmaniac be some sort of mycologist?
{"ab", "bc", "cd", "de", "ef", "fg", "gh", "hi", "ij", "jk", "kl", "lm", "mn", "no", "op", "pq", "qr", "rs", "st", "tu", "uv", "vw", "wx", "xy", "yz", "za"} -> "abcdefghijklmnopqrstuvwxyza" or "rstuvwxyzabcdefghijklmnopqrstuvwxyzabcdef" or any 27+ letters in order
Ve neden olmasın? Eğer kodunuz makul bir süre içinde çalıştırılırsa, Murphy'nin sitesinde büyük olan.
kurallar
- Kodunuz durmalıdır.
- Her yürütmede aynı portmantout'u döndürmeniz gerekmez.
- Tüm dizeleri sadece küçük harflerden oluşmuyor varsayabiliriz
a
aracılığıylaz
. - Portmantout mümkün değilse, programınız her şeyi yapabilir. Ör:
{"most", "short", "lists"}
- G / Ç ve boşluklar için standart kurallar geçerlidir.
Bu kod golf , bu yüzden her dilde en kısa çözüm (bayt cinsinden) kazanır! Mutlu golf!
{"sic", "bar", "rabbits", "cradle"} -> "barabbitsicradle"
{"mauve", "elated", "cast", "electric", "tame"} -> "mauvelectricastamelated"
(daha fazla test vakası)