Chuỗi Con Không Lặp Ký Tự (Kinh điển - LongestUniqueStr)

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài

Cho một chuỗi ký tự S chỉ gồm các chữ cái tiếng Anh thường và hoa, chữ số và ký tự đặc biệt. Hãy tìm độ dài của chuỗi con liên tiếp dài nhất mà trong đó không có ký tự nào bị lặp lại.


Input:

• Một dòng duy nhất chứa chuỗi S (độ dài 1 ≤ len(S) ≤ 10^5).

Output:

• In ra một số nguyên là độ dài lớn nhất tìm được.

Gợi ý thuật toán: Sử dụng kỹ thuật Hai con trở (Two Pointers) hoặc Cửa sổ trượt co giãn.

• Dùng 2 biến (L (trái) và R (phải).

• Di chuyển R sang phải. Dùng một mảng đếm (hoặc Map) để kiểm tra ký tự S[R] đã xuất hiện trong đoạn [L, R] chưa.

• Nếu đã xuất hiện, tăng L lên để loại bỏ ký tự trùng lặp đó.

• Cập nhật độ dài max ans = max(ans, R - L + 1).


Ví dụ:

Test 1:

Input:
abcabcbb
Output:
3

Test 2:

Input:
pwwkew
Output:
3

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.