給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。
示例 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來記錄...