leetcode : Longest Substring Without Repeating Characters
runtime 4 ms, beats 96.46% of cpp submissions
O(n) solution with explanation
tags: string, pointer, sliding window
🔗 link
Longest Substring Without Repeating Characters
📖 description
給定一個字串 s ,找到一個不包含重複字元的最長子字串
ex. pwwkew -> wke 為不包含重複字元的最長子字串
🧠 solution
sliding window,維護一個紀錄所有字母出現次數的 map ,以及兩個指標表示當前子字串的範圍,並根據兩種 case 做出操作
- 目前沒有出現重複的字元,右指標向右走以獲得更長的子字串
- 目前出現了重複的字元,左指標向右走直到沒有出現重複的字元
⏳ time complexity
最糟狀況下走過兩次字串
總時間複雜度 O(n)
📝 code
1 | class Solution { |