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ự \(S\) chỉ gồm các kí tự chữ cái latinh thường từ 'a, ...,'z'. Một chuỗi con \(X\) (gồm các kí tự ở vị trí liên tiếp) của \(S\) được gọi là một chuỗi có mật độ xuất hiện cao nếu trong chuỗi X 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 X.
Vi dụ: chuỗi \(S\) = "abbbabced", chuỗi con \(X\) = "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 bằng \(3\). Nếu \(X\) = "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 \(X\) = "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 \(X\) (gồm các kí tự ở vị trí liên tiếp) của \(S\) 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é.
Input
Dữ liệu: Vào từ file MATDO.INP gồm một chuỗi kí tự \(S\) chỉ gồm các kí tự chữ cái
latinh thường và có độ dài không lớn hơn \(2 \times 10^5\).
Output
Kết quả: Ghi ra file MATDO.OUT gồm một số nguyên duy nhất là độ dài của chuỗi
\(X\) tìm được.
Example
Test 1
Input
abbbabced
Output
7
Test 2
Input
ababab
Output
5
Test 3
Input
abc
Output
1
Scoring
- Có \(30\%\) số test ứng với \(30\%\) số điểm thỏa mãn: Chuỗi \(S\) chỉ gồm các kí tự thuộc tập
\(3\) kí tự'a', 'b', 'c'và độ dài chuỗi \(S\) không quá \(2 \times 10^3\). - Có \(30\%\) số test ứng với \(30\%\) số điểm thỏa mãn: Chuỗi \(S\) chỉ gồm các kí tự chữ cái
latinh thường và độ dài chuỗi \(S\) không quá \(2 \times 10^3\). - Có \(40\%\) số test ứng với \(40\%\) số điểm thỏa mãn: Chuỗi \(S\) chỉ gồm các kí tự chữ cái
latinh thường và độ dài chuỗi \(S\) không quá \(2 \times 10^5\).
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.