給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。
比如
輸入: "abcabcbb"
輸出: 3
解釋: 因為無重複字元的最長子串是 "abc",所以其長度為 3。
我第一次是這樣想的。
比如說abcabcbb,我要找到的就是重複的區間。
我分析為:
a,到下乙個a的距離是多少。
b到下乙個b的距離是多少。
我開始打算用佇列。
如果我乙個乙個加入進去,然後查詢佇列,如果佇列中有的話。
那麼我就移除第乙個,如果第乙個等於現在的元素那麼停止,如果不是繼續移除,再加入現在的元素,然後統計數量。
當然這裡是找最大的,所以每找到乙個子系列的時候,我需要去統計與比較出最大的。
後來我想到用字典,但是我不知道怎麼從第乙個移除,然後我每次子系列的時候都會去儲存從新開始的子系列到乙個字元中,然後遍歷。
上面兩種都不好,後來我看了別人的**。
後來就有了滑動視窗。
**如下:
class solution ;
map[(int)*(s+start)] = 1;
while( *(s+end) != 0 )
map[(int)*(s+end)] = 1;
}return maxlen;
}
無重複字元最長子串
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 ...
無重複字元最長子串
題目描述 給定乙個字串,找出不含有重複字元的 最長子串 的長度。示例 給定 abcabcbb 沒有重複字元的最長子串是 abc 那麼長度就是3。給定 bbbbb 最長的子串就是 b 長度是1。給定 pwwkew 最長子串是 wke 長度是3。請注意答案必須是乙個子串,pwke 是子串行而不是子串 i...
無重複字元的最長子串
給定乙個字串,找出不含有重複字元的最長子串的長度。示例 給定 abcabcbb 沒有重複字元的最長子串是 abc 那麼長度就是3。給定 bbbbb 最長的子串就是 b 長度是1。給定 pwwkew 最長子串是 wke 長度是3。請注意答案必須是乙個子串,pwke 是 子串行 而不是子串。int le...