首先把字串轉為字串陣列,這樣就可以逐一進行判斷。為了降低演算法的時間複雜度,我們使用linkedlist來儲存資料,這樣我們只要遍歷字串陣列一遍就可以輸出結果。逐一判斷,一旦遇到在鍊錶中不存在的字元,就加入鍊錶,若在鍊錶中已存在,則把鍊錶中的第乙個遇到的相同字元及其之前的字元刪除,在這個過程中更新最長子串長度。
本體用到了linkedlist的幾個方法,我們來簡單介紹一下它的使用:
1、add(); // 將指定元素新增到此列表的結尾。
2、contains(); //如果此列表包含指定元素,則返回 true。
3、indexof(); // 返回此列表中首次出現的指定元素的索引,如果此列表中不包含該元素,則返回 -1。
4、size(); // 返回此列表的元素數。
5、remove(); //移除此列表中指定位置處的元素。
public
class
solution
public
static
intlengthoflongestsubstring
(string s)
else
}return res;
}
修改str字串可觀察在不同字串下的輸出結果。 無重複字元最長子串
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 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...