題目:給定乙個字串,請你找出其中不含有重複字元的最長子串 的長度。
方法一:暴力法
逐個檢查所有的子字串,看它是否不含有重複的字元。
public
intlengthoflongestsubstring
(string s)
public
boolean
allunique
(string s,
int start,
int end)
return
true
;}
時間複雜度:o(n^3)
空間複雜度:o(min(m,n)),需要 o(k)的空間來檢查子字串中是否有重複字元,其中 k表示 set 的大小。而 set 的大小取決於字串 n 的大小以及字符集/字母 m 的大小。
方法二:滑動視窗
視窗通常是在陣列/字串中由開始和結束索引定義的一系列元素的集合,即 [i, j)(左閉,右開)。而滑動視窗是可以將兩個邊界向某一方向「滑動」的視窗。例如,我們將 [i, j)向右滑動 1個元素,則它將變為 [i+1, j+1)(左閉,右開)。
public
static
intlengthoflongestsubstring
(string s)
else
}return result;
}
時間複雜度:o(n)
空間複雜度:o(min(m,n))
無重複字元最長子串
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 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...