解題思路:採用滑動視窗演算法,在視窗內的字串就是不重複子串,每次判斷新的字元時,看視窗內是否存在該字元,如果存在,那麼剔除並重新調整視窗左邊界邊界;如果不存在,那麼新增到視窗內,視窗右邊界++。
值得注意的樣例
>>>""\\空格
>>>"
abba
"
具體**:
int lengthoflongestsubstring(char *s)//查詢第一次出現的位置
else
//不在視窗內,直接加入
else
winr++;
}tmplen = winr - winl + 1
; maxlen = maxlen < tmplen ?tmplen : maxlen;
}return
maxlen;
}
暴力解法(超時):逐個遍歷,如果出現重複,那麼i回退到i-tmplen重新遍歷
int lengthoflongestsubstring(char *s)else
}maxlen=maxlentmplen:maxlen;
if(strcmp(s,"
")==0
) maxlen=1
;
return
maxlen;
}
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初始化...