배경
3 년 전,이 톰 머피 (Tom Murphy) 는 포트만 토라는 아이디어를 언어로 된 모든 단어로 확장하기 위해 그것을 머리에 싣고 이것을 포트만 트 아웃 ( portmanteau plus tout [French for all ]) 이라고 불렀습니다 . 영어를 108,709 단어 목록으로 정의하면서 그는 다음 두 가지 특성을 가진 611,820 개의 문자 시퀀스를 찾을 수있었습니다.
- 모든 영어 단어가 문자열에 포함됩니다.
- 문자열에 인접한 두 글자가 포함 된 일부 이웃은 영어 단어입니다.
다음 은이 포트만 트 아웃을 찾을 수있는 페이지에 대한 링크입니다 (비디오 설명과 함께).
포트만 트 아웃
포트만 트 아웃의 두 속성 중 첫 번째 속성은 이해하기 쉽습니다. 두 번째는 약간의 설명이 필요할 수 있습니다.
기본적으로 단어는 겹칩니다. "fc"를 포함하는 단어가 없기 때문에 "golfcode"는 영어로 표시된 포트만에 나타나지 않습니다. 그러나 포트만 트 아웃에서 "egogo"를 찾을 수 있습니다. "ego"는 간격을 메 웁니다 (다른 모든 문자 쌍은 "code"또는 "golf"입니다).
당신의 작업 :
문자열 목록을 가져 와서 목록의 포트만 출력하는 프로그램이나 함수를 작성하십시오.
이 Python 3 코드 는 포트만 트 아웃을 확인합니다.
테스트 사례
모든 목록은 순서가 없습니다. 그건,
{"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
왜 안돼? 코드가 적절한 시간 내에 실행되는 경우 Murphy 사이트의 대규모 코드입니다.
규칙
- 코드가 정지되어야합니다.
- 각 실행마다 동일한 포트만 트 아웃을 리턴 할 필요는 없습니다.
- 당신은 모든 문자열은 소문자로 구성되어 가정 할 수
a
을 통해z
. - 포트만 트 아웃이 가능하지 않으면 프로그램이 무엇이든 할 수 있습니다. 전의:
{"most", "short", "lists"}
- I / O 및 허점에 대한 표준 규칙이 적용됩니다.
이것은 code-golf 이므로 각 언어에서 가장 짧은 솔루션 (바이트)이 이깁니다! 행복한 골프!
{"sic", "bar", "rabbits", "cradle"} -> "barabbitsicradle"
{"mauve", "elated", "cast", "electric", "tame"} -> "mauvelectricastamelated"
(더 많은 테스트 사례)