Leecode3 無重複字元的最長子串

2021-08-27 18:33:20 字數 701 閱讀 2289

題目說明:

如,在」abcabcbb」中,其無重複字元的最長子字串是」abc」,其長度為 3;

對於,」bbbbb」,其無重複字元的最長子字串為」b」,長度為1。

基本思路:

遍歷該字串,往集合裡面插入元素;

(1)插入成功,說明無重複,繼續插入;

(2)插入不成功時,元素有重複,記錄當前最大長度,查詢與當前元素重複的前面重複元素的下標,並清空集合,並從該下標的下乙個位置繼續插入元素,繼續(1)(2)過程,直到遍歷到字串的尾部,返回最大的長度。

leetcode提交超時

#include

#include

#include

using

namespace

std;

int main()else

s.clear();//清空set,重新插入元素

i++;//從當前重複元素的下乙個位置開始重新插入set}}

cout

0;}

第二種方法通過

分別用left和right記錄當前遍歷過但未出現重複元素的左右下標,如果存在出現重複元素,直接刪除重複元素,刪除到與當前遍歷的元素不重複為止。

class solution else

}return res;

}};

LeeCode3 無重複字元的最長子串

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。1.暴力法 public intlengthoflongestsubstring string s char ss s.tochararray int len ss.length setset newhashset int max len...

leecode3 無重複字元的最長子串

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

leecode 無重複字元的最長子串

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。題解 因為題目中所有的字元都是字元,字元的ascall碼不大於300,用乙個300的word陣列來儲存,每個字元在字串中的位置,當字元重複時,將該字元首次出現的字元的位置求解出來,利用word陣列儲存陣列的便利,將該位置之前所有的字元除去...