leetecode 3 最長無重複字元子串

2022-02-26 02:06:51 字數 638 閱讀 8895

暴力求解會超時。有兩種滑動視窗的方法,時間都差不多。

public

intlengthoflongestsubstring(string s)

else

}return

ans;

}

上面是第一種,思路是做乙個滑動視窗,從頭滑到尾,統計最長子串。

public

intlengthoflongestsubstring2(string s)

ans = math.max(ans,i-j+1);

map.put(s.charat(i),i+1);

}return

ans;

}

第二種如上,我們在做滑動視窗的時候,假如我們的視窗為[j,i],然後si'(索引是map[s[i]]-1)和si重複,我們把j滑動到i'+1,然後重新計算子串長度。保留最大子串長度。

這個要比找出最長子串簡單一點。

題解還給出了乙個更快的方法,思路是一樣的,但是利用乙個長陣列代替對映:

public

intlengthoflongestsubstring(string s)

return

ans;

}

3 無重複字元的最長子串

給定乙個字串,找出不含有重複字元的最長子串的長度。示例 給定 abcabcbb 沒有重複字元的最長子串是 abc 那麼長度就是3。給定 bbbbb 最長的子串就是 b 長度是1。給定 pwwkew 最長子串是 wke 長度是3。請注意答案必須是乙個子串,pwke 是 子串行 而不是子串。思路 用 i...

3 無重複字元的最長子串

給定乙個字串,找出不含有重複字元的最長子串的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 無重複字元的最長子串是 abc 其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 無重複字元的最長子串是 b 其長度為 1。示例 3 輸入 pwwkew 輸出 3 解釋 無重複字元的最長子串是...

3 無重複字元的最長子串

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