leetcode 3 找到最大不重複子字串

2021-10-04 22:41:03 字數 946 閱讀 2508

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。

示例 1:

輸入: 「abcabcbb」

輸出: 3

解釋: 因為無重複字元的最長子串是 「abc」,所以其長度為 3。

示例 2:

輸入: 「bbbbb」

輸出: 1

解釋: 因為無重複字元的最長子串是 「b」,所以其長度為 1。

示例 3:

輸入: 「pwwkew」

輸出: 3

解釋: 因為無重複字元的最長子串是 「wke」,所以其長度為 3。

請注意,你的答案必須是 子串 的長度,「pwke」 是乙個子串行,不是子串。

雜湊表判斷子字串是否重複 雙指標i, j 往後遍歷,如果找到第乙個重複的字元,i++, j 回溯到 i 的位置,然後接著判斷。

其間兩個變數 currlen 表示當前不重複子串長度,maxlen表示截至目前最長的非重複子串長度。

func

lengthoflongestsubstring

(s string

)int

var arr [

256]

int;

var maxlen =1;

//記錄所有最大狀態

var currlen =0;

//記錄當前最大狀態

var flag =0;

for i, j :=0,

0; j <

len(s)

; j++

i++; j = i-1;

}else

}if flag ==

0return maxlen;

}func

max(a int

, b int

)int

return b;

}

最大不重複子串

思路 利用hash表hashtable 256 來儲存出現過的字元,然後從頭開始遍歷字串,1 如果當前字元ch已經出現過 hashtable ch 1 則表示乙個區域性最長不重複子串已經出現 此時判斷該子串長度len是否大於mlen,如果是,則更新mlen,以及最長子串的起始位置mstart。同時將...

leetcode 3 無重複的最大子列

先上自己的暴力演算法,執行的結果是時間效率較差,那就應該有啥比較靈活的做法。class solution if sign if maxmax j 執行到這裡,說明該開頭已經檢查完畢 return max 看了一下,是通過滑動視窗的想法,維護兩個變數,分別指向視窗的左邊界與右邊界,不斷判斷是否有重複的...

Leetcode 3題目解答

leetcode 3題目解答 乙個字串,要得到連續各個元素都不同的最長子串長度。該函式返回乙個maxlen即最長子串的長度,用乙個hashmap存放字母以及其對應下標,利用for迴圈裡的i遍歷該string,則對於每個字母,有以下兩種情況 1 若當前字母不在hashmap中則放入,用乙個len來記錄...