Chuyển đến nội dung chính

Bài đăng

Đang hiển thị bài đăng từ Tháng 1, 2024

Bài 3 Leetcode: Longest Substring Without Repeating Characters

Đề bài: Cho một chuỗi s, tìm độ dài của chuỗi con dài nhất mà không chứa các ký tự lặp lại. Ví dụ 1:  Input: s = "abcabcbb" Output: 3 Giải thích: Đáp án là "abc", với độ dài là 3. Ví dụ 2: Input: s = "bbbbb" Output: 1 Giải thích: Đáp án là "b", với độ dài là 1. Ví dụ 3: Input: s = "pwwkew" Output: 3 Giải thích: Đáp án là "wke", với độ dài là 3. Lưu ý rằng đáp án phải là một chuỗi con (substring), "pwke" là một dãy con (subsequence) và không phải là một chuỗi con. Ràng buộc: 0 <= độ dài của chuỗi s <= 5 * 10 4 s chỉ gồm các chữ cái tiếng Anh, chữ số, ký tự đặc biệt và khoảng trắng. Cách 1: Sliding window Giải thích thuật toán bằng C++ class Solution { public: int lengthOfLongestSubstring(string s) { int ans = 0; vector<int> count(128); for (int l = 0, r = 0; r < s.length(); ++r) { ++count[s[r]]; while (count[s[r]] > 1) --count[s[l++]]; ans = ma