Bruce Dickenson이 Blue Öyster Cult 레코딩 세션을 생성 할 때 기술 지원을 제공하고 있습니다. 그가 더 많은 cowbell 을 요청할 때 , 당신은 그에게 그것을 줄 수 있습니다.
당신의 작업
문자열을 입력으로 사용하거나 하나 이상의 cowbell을 포함하는 관련 문자열을 출력하는 프로그램 또는 함수를 작성하십시오.
현에는 몇 개의 cowbell이 포함되어 있습니까?
문자열에 포함 된 카우벨의 수는 문자열의 문자를 치환하여 얻을 수있는 "카우벨"의 최대 고유 사본 수와 같습니다. 예를 들어, "bbbccceeellllllooowwwwwwwww"
3 개의 cowbell을 포함 "bbccceeellllllooowwwwwwwww"
하고 "bbbccceeelllllooowwwwwwwww"
각각은 2 개의 cowbell을 "cowbel"
포함하며 0 개의 cowbell을 포함합니다.
출력은 입력과 어떻게 관련되어야합니까?
출력은 입력 문자열과 카우벨의 수를 늘리는 데 필요한 입력 문자열의 가장 짧은 접두사로이 순서대로 연결되어야합니다.
예를 들어, 2 개 대신 3 개의 카우벨을 포함 "bbbccceeelllllooowwwwwwwww"
하려면 1 개만 추가 "l"
하면됩니다. 포함 된 가장 짧은 접두어 "l"
는 "bbbccceeel"
입니다. 따라서 입력이 "bbbccceeelllllooowwwwwwwww"
이면 출력은이어야합니다 "bbbccceeelllllooowwwwwwwwwbbbccceeel"
.
기술
- 입력에 인쇄 가능한 ASCII 문자 만 포함되어 있다고 가정 할 수 있습니다. 언어의 문자열 처리에 성가신 하나 또는 두 개의 문자가있는 경우 (예 : 개행 또는
\
) 입력에 해당 문자 가 포함되어 있지 않다고 가정 할 수 있습니다.이 제한 사항 만 언급하십시오. - 입력의 알파벳 문자가 모두 소문자이거나 모두 대문자라고 가정 할 수도 있습니다. 이 중 하나를 사용하지 않기로 선택하면 대소 문자를 구분하지 않고 계산합니다.
- 당신은 더 입력이 문자의 각각의 적어도 하나 개의 사본 포함되어 있다고 가정 할 수있다
b
,c
,e
,l
,o
,와w
. 이는 문자열의 일부 접두어를 연결하여 더 많은 cowbell을 포함하는 문자열을 생성 할 수 있다고 가정하는 것과 같습니다. (입력 문자열 자체에 카우벨이 포함될 필요는 없습니다.) - 만약 당신의 언어가이 문제를 해결하는 내장을 가지고 있다면, 그것을 심각하게 사용하십시오.
금도금 기저귀
레코딩 스튜디오 시간이 비싸므로 코드는 가능한 짧아야합니다. 가장 적은 바이트를 가진 항목이 승자입니다!
테스트 사례
( 더 쉬운 복사 / 붙여 넣기를위한 pastebin 링크 )
테스트 입력 # 1 : "christopher walken begs for more cowbell!"
테스트 출력 # 1 : "christopher walken begs for more cowbell!christopher wal"
테스트 입력 # 2 : "the quick brown fox jumps over the lazy dog"
테스트 출력 # 2 : "the quick brown fox jumps over the lazy dogthe quick brown fox jumps over the l"
테스트 입력 # 3 : "cowbell"
테스트 출력 # 3 : "cowbellcowbell"
테스트 입력 # 4 : "cowbell cowbell cowbell"
테스트 출력 # 4 : "cowbell cowbell cowbellcowbell"
테스트 입력 # 5 : "cowbell cowbell cowbel"
테스트 출력 # 5 : "cowbell cowbell cowbelcowbel"
테스트 입력 # 6 : "bcelow"
테스트 출력 # 6 : "bcelowbcel"
테스트 입력 # 7 : "abcdefghijklmnopqrstuvwxyz"
테스트 출력 # 7 : "abcdefghijklmnopqrstuvwxyzabcdefghijkl"
테스트 입력 # 8 : "cccowwwwbbeeeeelllll"
테스트 출력 # 8 : "cccowwwwbbeeeeelllllccco"
테스트 입력 # 9 : "be well, programming puzzles & code golf"
테스트 출력 # 9 : "be well, programming puzzles & code golfbe well, programming puzzles & c"
테스트 입력 # 10 : "lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. wow!"
테스트 출력 # 10 : "lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. wow!lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut lab"
테스트 입력 # 11 :
"c-c-b-c
i have a cow, i have a bell.
uh! bell-cow!
i have a cow, i have a cowbell.
uh! cowbell-cow!
bell-cow, cowbell-cow.
uh! cow-cowbell-bell-cow.
cow-cowbell-bell-cow!
"
테스트 출력 # 11 :
"c-c-b-c
i have a cow, i have a bell.
uh! bell-cow!
i have a cow, i have a cowbell.
uh! cowbell-cow!
bell-cow, cowbell-cow.
uh! cow-cowbell-bell-cow.
cow-cowbell-bell-cow!
c-c-b-c
i have a cow, i have a bell"
test case -> result
은 하나의 큰 사전 형식화 된 코드 블록에서 사용합니다. 심미적으로 훨씬 좋고 붙여 넣기가 더 쉽습니다.
L
단어에 두 가지가 있다는 사실 외에도 , 이것은 도전이 요구하는 것이 아닙니다.