Loading Now

max_occurences

Cho một xâu nhị phân s gồm các số 0 và 1, độ dài trong khoảng từ 1 tới 1e6 kí tự. Cho 2 số A và B ( 0 <= A < B <= 12), và 1 số N (1 <= N <= 20). Trong s tồn tại các xâu con c, mỗi xâu con có thể xuất hiện nhiều lần, số lần xuất hiện của 1 xâu con là o. Một giá trị o có thể là số lần xuất hiện của nhiều xâu con. Tìm N số lần xuất hiện lớn nhất của các xâu con có độ dài trong khoảng [A; B] theo thứ tự giảm dần. Nếu không đủ, in ra số lượng tối đa.

Ví dụ:

  • Với s = “101010”, A = 2, B = 3, N = 2 thì kết quả trả về sẽ là [3, 2], với xâu con “10” xuất hiện 3 lần và xâu con “010”, “101” và “01” xuất hiện 2 lần.

Đầu vào/Đầu ra:

  • [Thời gian chạy] 0.5s với C++, 3s với Java và C#, 4s với Python, Go và JavaScript.
  • [Đầu vào] Integer A, B, N
    A và B là giới hạn độ dài các xâu con thỏa mãn. 0 <= A < B <= 12.
    N là số giá trị xuất hiện lớn nhất cần trả về. 1 <= N <= 20. Nếu không đủ N giá trị, trả về tối đa các giá trị tìm được.
  • [Đầu vào] String s
    Một xâu nhị phân chỉ gồm các kí tự '0', '1'.
    1 <= s.length() <= 1e6
    .
  • [Đầu ra] Array.Integer
    N giá trị là số lần xuất hiện lớn nhất của các xâu con theo yêu cầu. Nếu có ít hơn N giá trị, trả về tất cả. Lưu ý trả về theo thứ tự giảm dần.

Post Comment

Contact