A 無重複字元的最長子串

2021-09-24 23:52:11 字數 776 閱讀 7266

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

方法一:暴力法

逐個檢查所有的子字串,看它是否不含有重複的字元。

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...