Gần đây có một câu hỏi về Stack Overflow nơi OP đang cố gắng viết một hàm để tìm từ trong một chuỗi có nhiều chữ cái lặp đi lặp lại. Tất nhiên không khó để viết một bài trong vài giây và tôi đã viết một bài bằng Javascript ngắn nhất có thể để giải trí. Nhưng tôi không phải là một chuyên gia về chơi golf mã, vì vậy tôi tự hỏi chương trình đơn giản này có thể ngắn hơn bao nhiêu!
Thử thách
Viết chương trình hoặc hàm lấy một chuỗi từ và trả lại hoặc in từ có nhiều chữ cái lặp lại nhất.
Quy tắc:
Chọn từ có số lượng chữ cái lặp lại nhiều nhất (xem ví dụ bên dưới)
Nếu không có từ nào lặp lại các chữ cái, trả về -1.
Nếu hai từ có cùng số lượng chữ cái lặp lại tối đa, hãy chọn một từ gần với đầu chuỗi.
Đệ trình ngắn nhất tính bằng byte thắng.
Đầu vào
Lấy làm đầu vào một chuỗi bao gồm một hoặc nhiều từ được phân tách bằng dấu cách. Đầu vào có thể từ STDIN (hoặc thay thế gần nhất), tham số dòng lệnh hoặc đối số chức năng.
Đầu ra
In đầu ra ra STDOUT để trả lại.
Ví dụ
Hãy xem xét chuỗi aaabbb cccc
. Điều này có chứa hai từ: aaabbb
và cccc
. Từ aaabbb
này có 3 a
's và 3 b
' s, và cccc
có 4 c
's. Vì vậy, số lượng chữ cái lặp lại tối đa aaabbb
là 3 và tối đa cccc
là 4. Chúng tôi muốn chọn từ có số lượng chữ cái lặp lại tối đa, do đó, đầu ra aaabbb cccc
phải là cccc
.
Các trường hợp thử nghiệm khác:
Today, is the greatest day ever! --> greatest
This is a great day --> -1
aaabbb cccc --> cccc
ever
aabb
có 2 chữ cái lặp đi lặp lại. Sẽ aaaabb
được coi là có 4 chữ cái lặp lại (thứ 2, 3, 4 a
, 2 b
) hoặc 2 chữ cái lặp lại ( a
và b
).