소개
우리는 특히 팬인 경향이있는 괴짜들 모두이 오래된 파 사이드 만화를 기억합니다 .
Schwartzman 교수는 자신의 발명품을 사용하기 전에 프로그래밍 기술을 좀 더 자세히 알아볼 수있었습니다. 그러나 가능한 적은 바이트를 사용하여 직접 복제 할 수 있습니까?
입력 사양
개 소리를 적절하게 발음 된 "헤이"로 변환하는 스크립트를 작성해야합니다. 이것은 순수한 코드 골프입니다. 가장 적은 바이트 수가 이깁니다.
입력 한 내용은 다음 토큰의 조합으로 구성됩니다.
Bark
,Baark
,Baaark
,Baaaark
, (즉,B*rk
적어도 1과a
별표 교체)Woof
,Wooof
,Woooof
, ... (W*f
이상과 2 개o
의 별표 교체)Grr
,Grrr
,Grrrr
, ..., (G
적어도 다음 두r
S)- 임의의 수
.
(기간),!
(느낌표) 및 / 또는?
입력 어디에서나 발생할 수있다 (물음표) 문자,
다시 말하지만, 기반 토큰 Woof
과 Grr
기반 토큰은 항상 적어도 두 개의 o
s 및 r
s를 필요로합니다 . Wof
하고 Gr
있습니다 하지 유효한 토큰.
토큰이 얼마나 오래있을 수 있는지에 대한 제한은 없습니다 (예를 들어, 토큰에 몇 개의 반복 a
이있을 수 있는지 Bark
). 그러나, 귀하의 디코더에서만 입력 토큰 제대로 작동 할 필요가 최대 10 개까지 총 a
,의 o
S 또는 r
이 문제를 통과이야.
출력 사양
Schwartzman의 설계에 충실한 개 디코더 프로그램은 다음과 같이 출력 텍스트로 처리해야합니다.
Bark
,Woof
그리고Grr
되고Hey
;Baark
,Wooof
그리고Grrr
되고Heyy
;Baaark
,Woooof
그리고Grrrr
되고Heyyy
; 기타- 모든
Bark
기반 토큰y
의 경우 출력Hey
기반 토큰의a
s 수는 s 수와 같아야합니다 . - 모든
Woof
기반 토큰y
의 경우 출력Hey
기반 토큰 의 s 수는 s 수 보다 1이 작아야 합니다o
. - 모든
Grr
기반 토큰y
의 경우 출력Hey
기반 토큰 의 s 수는 s 수 보다 1이 작아야 합니다r
. - 모든 구두점 (
.
,!
및?
)은 변경되지 않습니다.
s 및 s에 대해서만 y
출력에서 하나를 삭제하십시오 ! 8 s 의 입력 값은 8 s의 일치하는 세트가 됩니다. 그러나 단지이된다 7 개, 의.Woof
Grr
Baaaaaaaark?
a
Heyyyyyyyy?
y
Woooooooof?
Heyyyyyyy?
y
다시 말하지만, 프로그램이 무제한 크기의 입력 토큰에 대해 작동하도록 할 수 있다면 훌륭하지만이 과제의 목적을 위해 10 자 이하의 반복되는 문자가없는 입력 토큰에 대해서만 프로그램이 제대로 작동하는지 확인합니다. .
입력 한 모든 Bark
-, Woof
-및 Grr
-기반 토큰은 대문자로 시작하는 것으로 가정합니다. 따라서이 없습니다 필요 핸들의 회전에 Bark grrr
로 Hey heyy
또는 유사한 아무것도.
입력 및 출력 예
- 입력:
Bark. Bark! Bark!!
- 산출:
Hey. Hey! Hey!!
- 입력:
- 입력 :
Baaaaaark?
(6a
초) - 출력 :
Heyyyyyy?
(6y
초)
- 입력 :
- 입력 :
Grrrrrrrr...
(8r
초) - 출력 :
Heyyyyyyy...
( 7y
초)
- 입력 :
- 입력:
?...!
- 산출:
?...!
- 입력:
- 입력:
Wooof Woof? Grrrr. Baaaark Grr!
- 산출:
Heyy Hey? Heyyy. Heyyyy Hey!
- 입력: