Loading Now

longestRepeat

Đạt được cho 1 chuỗi kí tự gọi là s (có thể có kí tự đặc biệt), biết các kí tự có thể lặp lại nhau.

Thầy giáo yêu cầu Đạt phải tìm ra tập hợp con dài nhất chỉ bao gồm những kí tự xuất hiện nhiều hơn 1 lần trong chuỗi s và bắt buộc phải nằm trong bảng chữ cái alphabet. 

Nếu có nhiều kí tự thỏa mãn thì kí tự nào xuất hiện trước thì ghi ra trước. (nói cách khác thứ tự của các kí tự trong chuỗi s vẫn đc bảo toàn

Hãy giúp Đạt tìm tập hợp này.

Lưu ý: nếu không tồn tại hãy trả về xâu rỗng.

Ví dụ:

  • Với s = "abcakbo" thì kết quả là longestRepeat(s) = "abab"

     Giải thích:

  • Ta có 'a''b' xuất hiện 2 lần trong chuỗi s.
  • Những kí tự còn lại {'c','k','o'} xuất hiện 1 lần.
  • Nên tập hợp con dài nhất chứa các kí tự lặp lại là "abab"
  • Với s = "4asbd 15" thì kết quả là longestRepeat(s) = ""

     Giải thích:

  • Vì tất cả kí tự đều lặp lại 1 lần
  • Nên ta trả về là ""

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

  • [Thời gian chạy] 0.5s với C++, 3s với Java, C#, Python, JavaScript.
  • [Đầu vào] String
    0 ≤ s.length ≤ 106
  • [Đầu ra] String
    Trả về tập hợp con nếu tồn tại, ngược lại thì trả về rỗng.

Post Comment

Contact