Latar Belakang
Tiga tahun yang lalu, orang ini Tom Murphy memasukkannya ke dalam kepala untuk memperluas gagasan portmanteau ke semua kata dalam bahasa dan menyebut ini portmantout ( portmanteau plus tout [Bahasa Prancis untuk semua ]). Mendefinisikan bahasa Inggris sebagai daftar 108.709 kata, ia berhasil menemukan urutan 611.820 huruf dengan dua properti berikut:
- Setiap kata bahasa Inggris terkandung dalam string.
- Beberapa lingkungan yang berisi dua huruf yang berdekatan dalam string adalah kata bahasa Inggris.
Berikut ini tautan ke halaman tempat portmantout ini dapat ditemukan (bersama dengan penjelasan video).
Portmantout
Yang pertama dari dua properti portmantout mudah dimengerti. Yang kedua mungkin membutuhkan penjelasan.
Pada dasarnya, kata-kata harus tumpang tindih. "golfcode" tidak akan pernah muncul di portmantout bahasa Inggris, karena tidak ada kata di sana yang berisi "fc". Namun, Anda mungkin menemukan "codegolf" di portmantout, karena "ego" menjembatani kesenjangan (dan semua pasangan huruf lainnya berada dalam "kode" atau "golf").
Tugas Anda:
Tulis program atau fungsi yang mengambil daftar string dan mengembalikan portmantout daftar.
Kode Python 3 ini akan memverifikasi portmantout.
Uji kasus
Semua daftar tidak berurutan; itu adalah,
{"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
Dan kenapa tidak? Yang besar di situs Murphy, jika kode Anda dieksekusi dalam waktu yang wajar.
Aturan
- Kode Anda harus dihentikan.
- Anda tidak perlu mengembalikan portmantout yang sama dengan setiap eksekusi.
- Anda mungkin menganggap semua string hanya terdiri dari huruf kecil
a
melaluiz
. - Jika tidak ada portmantout yang mungkin, program Anda dapat melakukan apa saja. Ex:
{"most", "short", "lists"}
- Aturan standar untuk I / O dan celah berlaku.
Ini adalah kode-golf , sehingga solusi terpendek (dalam byte) di setiap bahasa menang! Selamat bermain golf!
{"sic", "bar", "rabbits", "cradle"} -> "barabbitsicradle"
{"mauve", "elated", "cast", "electric", "tame"} -> "mauvelectricastamelated"
(lebih banyak test case)