Giới thiệu
Chúng tôi - đặc biệt là những người đam mê trong số chúng tôi, những người có xu hướng trở thành người hâm mộ - tất cả đều nhớ đến bộ phim hoạt hình Far Side cũ này :
Rõ ràng, Giáo sư Schwartzman có thể đã cải thiện các kỹ năng lập trình của mình chỉ một chút nữa trước khi ông đưa phát minh của mình vào sử dụng. Nhưng bạn có thể tự sao chép nó ... sử dụng càng ít byte càng tốt không?
Thông số kỹ thuật đầu vào
Bạn phải tạo một tập lệnh chuyển âm thanh của chó thành "Hey" có ngữ điệu phù hợp. Đây là golf mã thuần túy; số byte thấp nhất sẽ thắng.
Đầu vào của bạn sẽ bao gồm một số kết hợp các mã thông báo sau:
Bark
,Baark
,Baaark
,Baaaark
, ... (có nghĩa là,B*rk
có ít nhất 1a
thay thế các dấu hoa thị)Woof
,Wooof
,Woooof
, ... (W*f
với ít nhất 2o
s thay thế các dấu hoa thị)Grr
,Grrr
,Grrrr
, ..., (G
tiếp theo ít nhất 2r
s)- Bất kỳ số ký tự (dấu chấm
.
),!
(dấu chấm than) và / hoặc?
(dấu hỏi), có thể xuất hiện ở bất cứ đâu trong đầu vào
Lưu ý, một lần nữa, mã thông báo dựa trên Woof
và Grr
dựa trên luôn yêu cầu ít nhất hai o
s và r
s tương ứng;Wof
và không phảiGr
là mã thông báo hợp lệ.
Không có giới hạn về thời gian mã thông báo có thể tồn tại (ví dụ: có bao nhiêu lần lặp lại a
có thể có trong Bark
mã thông báo); tuy nhiên, bộ giải mã của bạn chỉ cần hoạt động chính xác cho các mã thông báo đầu vào có tối đa 10 tổng a
, o
s hoặc r
s để vượt qua thử thách này.
Thông số đầu ra
Trung thành với thiết kế của Schwartzman, chương trình giải mã răng nanh của bạn phải xử lý nó thành văn bản đầu ra như sau:
Bark
,Woof
VàGrr
trở thànhHey
;Baark
,Wooof
vàGrrr
trở thànhHeyy
;Baaark
,Woooof
VàGrrrr
trở thànhHeyyy
; v.v.- Đối với tất cả các
Bark
mã thông báo dựa trên số lượng, sốy
s trong đầu raHey
mã thông báo dựa trên phải bằng số lượnga
s; - Đối với tất cả các
Woof
mã thông báo dựa trên tất cả , số lượngy
s trongHey
mã thông báo dựa trên đầu ra phải nhỏ hơn một một số số lượngo
s; - Đối với tất cả các
Grr
mã thông báo dựa trên tất cả , số lượngy
s trongHey
mã thông báo dựa trên đầu ra phải nhỏ hơn một một số số lượngr
s; - Tất cả các dấu câu (
.
,!
và?
) được giữ nguyên.
Nhớ thả một cái y
từ đầu ra cho Woof
s và Grr
s! Đầu vào Baaaaaaaark?
, với 8 a
giây, sẽ trở thành Heyyyyyyyy?
, với một bộ 8 y
giây phù hợp . Tuy nhiên, Woooooooof?
chỉ trở thành Heyyyyyyy?
, với 7 y
s.
Một lần nữa, nếu bạn có thể khiến chương trình của mình hoạt động với mã thông báo đầu vào có kích thước không giới hạn, thì thật tuyệt, nhưng với mục đích của thử thách này, chương trình của bạn sẽ chỉ được kiểm tra để đảm bảo rằng chương trình hoạt động đúng với các mã thông báo đầu vào không quá 10 chữ cái lặp lại .
Tất cả các mã thông báo Bark
-, Woof
- và Grr
dựa trên đầu vào của bạn được giả sử bắt đầu bằng chữ in hoa. Do đó, không cần phải xử lý biến Bark grrr
thành Hey heyy
hoặc bất cứ điều gì tương tự.
Ví dụ đầu vào và đầu ra
- Đầu vào:
Bark. Bark! Bark!!
- Đầu ra:
Hey. Hey! Hey!!
- Đầu vào:
- Đầu vào:
Baaaaaark?
(sáua
giây) - Đầu ra:
Heyyyyyy?
(sáuy
giây)
- Đầu vào:
- Đầu vào:
Grrrrrrrr...
(támr
giây) - Đầu ra:
Heyyyyyyy...
( bảyy
giây)
- Đầu vào:
- Đầu vào:
?...!
- Đầu ra:
?...!
- Đầu vào:
- Đầu vào:
Wooof Woof? Grrrr. Baaaark Grr!
- Đầu ra:
Heyy Hey? Heyyy. Heyyyy Hey!
- Đầu vào: