無重複字元的最長子串

2021-10-02 17:05:26 字數 698 閱讀 2966

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

例如:

輸入:

"abcabcbb"

輸出:3

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

博主看到此題第一感覺就是採用滑窗法,通過擷取無重複字元子串求取最大長度,此方法採用c++ string內建find判斷是否重複。

int

lengthoflongestsubstring_

(string s)

else

} m_imaxlen =

max(m_imaxlen,

(int

)m_strstr.

size()

);return m_imaxlen;

}

上述方法優化版:

只需要定義乙個無重複子串的初始位置指標即可代替子串擷取這一步(耗時且消耗空間);

通過一次遍歷即可獲得當前字元是否存在子串中。

int

lengthoflongestsubstring

(string s)

} m_imaxlen =

max(m_imaxlen, i - m_ipos +1)

;}return m_imaxlen;

}

無重複字元最長子串

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