배경
이것은 텍스트 처리에 관한 3 홀 골프 코스의 첫 번째 부분입니다. 가장 중요한 아이디어는 입력 텍스트를 가져 와서 솔루션을 통해 세 가지 도전 과제 (소량의 접착제 코드 사용)에 파이프하면 아름다운 형식의 단락을 내뱉 는다는 것입니다. 이 첫 번째 과제에서 주어진 하이픈 패턴을 사용하여 텍스트에 하이픈을 씁니다.
입력
프로그램은 두 개의 문자열 입력, 즉 텍스트와 하이픈 패턴 목록을 가져야합니다. 첫 번째 입력은 인쇄 가능한 ASCII 문자와 공백으로 구성된 비어 있지 않은 문자열입니다. 줄 바꿈이나 물결표가 포함되지 않습니다 ~
. 두 번째 입력은 쉼표로 구분 된 단어 목록이며 소문자 ASCII 문자의 물결표로 구분 된 음절로 구성됩니다. 예는 ex~cel~lent,pro~gram~ming,abil~i~ties
입니다.
산출
프로그램은 다음과 같은 방식으로 첫 번째 입력을 수정해야합니다. 하이픈 소문자 버전이 두 번째 입력에있는 단어 (알파벳 ASCII 문자의 최대 하위 문자열)는 하이픈 버전으로 대체되지만 대소 문자는 유지됩니다. 위의 예제 목록에서 텍스트에 단어가 포함되어 있으면 ; Excellent
로 대체됩니다 Ex~cel~lent
. 그러나, Excellently
해야 하지 수정할 수. 출력은이 수정 된 문자열이어야합니다.
자세한 규칙 및 점수
입력에 대해 다음을 가정 할 수 있습니다.
- 첫 번째 입력에는 물결표가없고 선행, 후행 또는 반복되는 공백이 없습니다. 비어 있지 않습니다.
- 두 번째 입력은 적어도 하나의 단어를 포함하고, 각 단어는 적어도 두 음절을 포함합니다. 각 음절은 비어 있지 않습니다.
- 두 번째 입력은 다른 단어에서 음절로 나오는 단어를 포함하지 않습니다.
원하는 경우 두 입력의 순서를 변경하고 선택적으로 하나의 후행 줄 바꿈을 출력에 추가 할 수 있습니다.
함수 또는 전체 프로그램을 작성할 수 있습니다. 가장 낮은 바이트 수가 이기고 표준 허점은 허용되지 않습니다.
테스트 사례
이들은 형식으로 나열됩니다 1st input [newline] 2nd input [newline] output
.
Excellent programming abilities, you work excellently!
ex~cel~lent,pro~gram~ming,abil~i~ties
Ex~cel~lent pro~gram~ming abil~i~ties, you work excellently!
Superman (sometimes incorrectly spelled "Super-man") is super #&%@ing strong.
su~per,some~times,in~cor~rectly,spell~ing
Superman (some~times in~cor~rectly spelled "Su~per-man") is su~per #&%@ing strong.
IncONsISTent caPItalizATIon!
in~con~sis~tent,cap~i~tal~iza~tion
In~cON~sIS~Tent caP~I~tal~izA~TIon!
Such short words.
awk~ward
Such short words.
Digits123 are456cool789.
dig~its,dig~i~tal,are~cool
Dig~its123 are456cool789.
magic magic
ma~gic
ma~gic ma~gic
이 문제에서 발생할 수있는 하이픈 오류는 이 하이픈 도구 로 인해 발생합니다 .
#programming!
은 여전히 두 번째 입력의 영향을받습니다 pro~gram~ming
). 숫자도 포함되지 않습니까 (예 : 알파벳 문자 만 허용됨)?