Amaç
Gönderen Vikipedi :
Özyinelemeli bir kısaltma, içinde durduğu ifadede kendisini ifade eden bir kısaltmadır.
Amacınız bir dize özyinelemeli bir kısaltma olup olmadığını kontrol etmektir.
- Kısaltma ilk kelimedir.
- Sözcükler büyük / küçük harfe duyarlı değildir, tek bir boşlukla ayrılmışlardır.
- Verilen dize noktalama işareti ve kesme işareti içermez.
- Her kelimenin yalnızca ilk harfi kısaltmanın bir parçası olabilir.
Ayrıca fonksiyon kelimelerini de vermelisiniz . Basit olması için, her kelime bir fonksiyon kelimesi olarak düşünülebilir.
Örnek
f("RPM Package Manager") => { true, [] }
f("Wine is not an emulator") => { true, ["an"] }
f("GNU is not Unix") => { true, ["is"] }
f("Golf is not an acronym") => { false }
f("X is a valid acronym") => { true, ["is","a","valid","acronym"] }
Tam bir program veya bir işlev verebilirsiniz.
Giriş dizesi STDIN'den veya bir işlev argümanı olarak alınabilir.
Çıktı sonucu doğru olabilir / yanlış, 0/1, evet / hayır ...
İşlev kelimeleri listesi (listenin herhangi bir biçimi geçerliyse) ve eğer bu yinelemeli bir kısaltma ise (liste boş olsa bile ) verilmelidir. . İşlev kelimelerinin büyük harflerini korumanız gerekmez.
Kazanan kriterler
Bu bir kod golf , en kısa kod kazanır.