LeetCode133:給定一個字串,找出最長的不具有重複字元的子串的長度。例如,“abcabcbb”不具有重複字元的最長子串是“abc”,長度為3。對於“bbbbb”,最長的不具有重複字元的子串是
題目描述
給定一個字串,找出最長的不具有重複字元的子串的長度。例如,“abcabcbb”不具有重複字元的最長子串是“abc”,長度為3。對於“bbbbb”,最長的不具有重複字元的子串是“b”,長度為1。
示例1
輸入 ::""
輸出 : 0
思路解析:本題目可以說是一個很典型的利用滑動視窗的字串型別的題目。設定兩個指標,限定了一個視窗,視窗內的字元不能夠重複,每次右指標移動時都會檢查視窗內是否是重複元素,如果有的話那麼調整左指標的位置,定義一個res值記錄最大的視窗值就是問題的解。
class Solution {
public:
/**
*
* @param s string字串
* @return int整型
*/
int lengthOfLongestSubstring(string s) {
if(s.empty())//空串檢查
return 0;
map<char,int> book;//定義map
int i,Max=0,pre=-1;//i為左指標,pre為右指標的位置
for(i=0;i<s.length();i++)
book[s[i]]=-1;
for(i=0;i<s.length();i++)
{
pre=max(pre,book[s[i]]);
Max=max(Max,i-pre);
book[s[i]]=i;
}
return Max;
}
};
相關文章
- 無重複字元的最長子串字元
- 3 無重複字元的最長子串字元
- java無重複字元的最長子串Java字元
- 3. 無重複字元的最長子串字元
- 求字串中不含重複字元的最長子串字串字元
- 【每日一題】無重複字元的最長子串每日一題字元
- LeetCode——無重複字元的最長子串LeetCode字元
- 演算法-無重複字元的最長子串演算法字元
- 【LeetCode】3 無重複字元的最長子串LeetCode字元
- leetcode 之無重複字元的最長子串LeetCode字元
- 【leetcode】【java】【3、無重複字元的最長子串】LeetCodeJava字元
- leetcode-3無重複字元的最長子串LeetCode字元
- LeetCode-3. 無重複字元的最長子串LeetCode字元
- Leetcode 3. 無重複字元的最長子串LeetCode字元
- 最長不含重複字元的子字串字元字串
- 每日leetcode——3. 無重複字元的最長子串LeetCode字元
- LeetCode題集-3 - 無重複字元的最長子串LeetCode字元
- LCR 016. 無重複字元的最長子串(中)字元
- (字串雜湊表)找到字串中不重複出現字元的最長子串長度字串字元
- 無重複字元的最長子串問題 (移動視窗法求解)字元
- [LeetCode 刷題] 3. 無重複字元的最長子串 (Medium)LeetCode字元
- #leetcode刷題之路3-無重複字元的最長子串LeetCode字元
- 每天一道演算法題:無重複字元的最長子串演算法字元
- JZ-073-最長不含重複字元的子字串字元字串
- Leetcode 3.無重複字元的最長子串 字典記錄每個字元最後出現的位置LeetCode字元
- 讓我們一起啃演算法----無重複字元的最長子串演算法字元
- Leetcode[字串] 3. 無重複字元的最長子串 10行極簡寫法!LeetCode字串字元
- 劍指 Offer 48. 最長不含重複字元的子字串字元字串
- [LeetCode] Longest Substring Without Repeating Characters 最長無重複字元的子串LeetCode字元
- LeetCode3:Longest Substring Without Repeating Characters(無重複字元的最長子串)LeetCode字元
- 滑動視窗3.替換後最長重複字元子串字元
- 演算法練習:求字串的最長重複子串(Java實現)演算法字串Java
- 最長子串
- 兩個字串的最長公共子串字串
- 【谷歌面試題】找出字串中只包含兩種字元的最長子串谷歌面試題字串字元
- leetcode 劍指 Offer 48. 最長不含重複字元的子字串LeetCode字元字串
- 用 PHP 在 力扣 上演算法 [無重複字元的最長子串]{一天一更}PHP力扣演算法字元
- SPOJ 687. Repeats(字尾陣列求最長重複子串)陣列