給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。
示例 1:
輸入: "abcabcbb
"輸出:
3解釋: 因為無重複字元的最長子串是
"abc
",所以其長度為 3。
示例 2:
輸入: "bbbbb
"輸出:
1解釋: 因為無重複字元的最長子串是 "b
",所以其長度為 1。
示例 3:
輸入: "pwwkew
"輸出:
3解釋: 因為無重複字元的最長子串是
"wke
",所以其長度為 3
。 請注意,你的答案必須是 子串 的長度,
"pwke
" 是乙個子串行,不是子串。
解法:curstr陣列做臨時的儲存,當碰到重複字元,刪除此字元在陣列之前所有字元,包括本身。
每次需要重複判斷下是否是最大長度
classsolution
var maxstr =string()
var curstr =string()
forcharins
char
)
if(curstr.count >maxstr.count)
}return
maxstr.count
}}
解題思路:
1、遍歷字串
2、判斷陣列裡面能否查詢到當前字元,查到的話,重新計算maxcount,然後把陣列當前位置前面的元素刪掉,然後插入當前元素
classsolution
char
) }
return
max(maxcount, array.count)
}}
滑動視窗原理(目前最優)
視窗法,區間取值;
右區間(end)值恆增加(向右走);
左區間(start)值停留,若出現相等則取下一位(end + 1);
最後返回區間長度(ans).
classsolution
var kv =[character : int]()
var start = 0, end = 0, ans = 0
for item in
s
//記錄字元在原字串的位置
kv[item] =end
//記錄不同字元最大長度
ans = max(end - start + 1
, ans)
end += 1
}
return
ans }
}
LeetCode第3題題解 無重複字元的最長子串
題目 leetcode 題目描述 給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 ...
LeetCode刷題實戰3 無重複字元的最長子串
題目描述 給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。示例 1 輸入 s abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 s bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 s pww...
leetcode刷題之路3 無重複字元的最長子串
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。字元陣列和字串的區別,c語言字元陣列和字串區別詳解 開始的想法是在對字元陣列設定兩個指標,初始化乙個在位置0乙個在位置1,ans初始化...