Đề bài
Trò chơi chọn bóng mà nhóm của Tuấn thiết kế được bạn bè và giáo viên trong trường đánh giá rất cao. Sau thành công này, Tuấn cùng nhóm bạn tập trung học tập để thi vào lớp chuyên tin của một trường chuyên danh giá trong tỉnh. Những bài tập mà Tuấn làm đều yêu cầu kỹ năng thiết kế thuật toán chuyên nghiệp. Một trong các bài tập mà bạn ấy đang xây dựng thuật toán có nội dung như sau:
Cho chuỗi kí tự chỉ gồm các kí tự chữ cái latinh thường từ 'a', ..., 'z'. Một chuỗi con (gồm các kí tự ở vị trí liên tiếp) của được gọi là một chuỗi có mật độ xuất hiện cao nếu trong chuỗi có một kí tự mà số lần xuất hiện của kí tự đó nhiều hơn số các kí tự còn lại trong chuỗi .
Ví dụ: chuỗi = "abbbabced", chuỗi con = "abbbabc" là một chuỗi có mật độ xuất hiện cao, vì có kí tự 'b' xuất hiện 4 lần, số các kí tự còn lại là 3. Nếu = "abbbabce", kí tự xuất hiện nhiều lần nhất 4 lần (kí tự 'b') và số kí tự còn lại là 4. Do vậy chuỗi = "abbbabce" không phải là một chuỗi có mật độ xuất hiện cao.
Yêu cầu: Tìm một chuỗi con (gồm các kí tự ở vị trí liên tiếp) của là một chuỗi có mật độ xuất hiện cao và độ dài lớn nhất.
Tuấn cũng đã có thuật toán của mình, còn bạn thì sao? Hãy lập trình giải bài toán trên để đối chiếu kết quả nhé.
Dữ liệu vàoMatDo.Inp
Dữ liệu cho trong file văn bản MatDo.Inp gồm một chuỗi kí tự chỉ gồm các kí tự chữ cái latinh thường và có độ dài không lớn hơn .
Kết quả raMatDo.Out
Kết quả ghi ra file văn bản MatDo.Out gồm một số nguyên duy nhất là độ dài của chuỗi tìm được.
Ràng buộc
- Có 30% số test ứng với 30% số điểm thỏa mãn: Chuỗi chỉ gồm các kí tự thuộc tập 3 kí tự {'a', 'b', 'c'} và độ dài chuỗi không quá .
- Có 30% số test ứng với 30% số điểm thỏa mãn: Chuỗi chỉ gồm các kí tự chữ cái latinh thường và độ dài chuỗi không quá .
- Có 40% số test ứng với 40% số điểm thỏa mãn: Chuỗi chỉ gồm các kí tự chữ cái latinh thường và độ dài chuỗi không quá .
Ví dụ
Ví dụ 1
abbbabced
7
Giải thích
Ta có thể chọn chuỗi thỏa mãn là: = "abbbabc" hoặc = "bbbabce".
Ví dụ 2
ababab
5
Giải thích
Ta có thể chọn chuỗi thỏa mãn là:
= "ababa" vì kí tự 'a' xuất hiện 3 lần, số các kí tự còn lại là 2.
hoặc = "babab" vì kí tự 'b' xuất hiện 3 lần, số các kí tự còn lại là 2.
Ví dụ 3
abc
1
Giải thích
Ta có thể chọn chuỗi thỏa mãn là:
= "a" vì kí tự 'a' xuất hiện 1 lần, số các kí tự còn lại là 0.
hoặc = "b", = "c" đều thỏa mãn.