不含重複字元的最長子串

2021-08-21 12:06:29 字數 530 閱讀 2007

問題描述:給定乙個字串,找到最長的不含重複字元子串。例如,「abcabccc」最長不含重複字元的子串為「abc」,長度為3。對於「bbbbb」最長的子串為「b」,長度為1。

解決思路:「滑動視窗」,維護乙個不包含重複字元「視窗」,從左到右掃瞄字串,每當加乙個新字元時,檢查該字元是否存在於「視窗」中,如果不存在則將其新增進「視窗」,如果存在,則將「視窗」最左端到該字元之間的所有字元從該「視窗」中刪除,在此過程中記錄最大視窗長度。例如對於「abcabccc」當掃瞄到「abca」時將第乙個「a」刪掉得到「bca」。

int lengthoflongestsubstring(string s) 

else

imap.insert(make_pair(s[i], i));

n = imap.size();}}

longest = max(n, longest);

return longest;

}

不含有重複字元的最長子串

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 ...

python求解不含重複字元的最長子串

解題思路 該題類似於乘積最大,加和最大的連續陣列,本題也使用於連續並且也使用滑動視窗來做,滑動視窗做法是維護兩個指標,i和j,它們什麼時候增加視窗,什麼時候打破視窗。法一,使用while迴圈。def lengthlongestsubstring s 使用set來放入不重複的子串 usedchar s...

不含有重複字元的 最長子串 的長度。

題目 給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。class solution object def lengthoflongestsubstring self,s type s str rtype int 儲存歷史迴圈中最長的子串長度 max len 0 判斷傳入的字串是否為空 if...