示例 1:
輸入: 「abcabcbb」
輸出: 3
解釋: 因為無重複字元的最長子串是 「abc」,所以其長度為 3。
分析:0123456789
字串長度為10,那麼最大子串長度
為10,並且只有1種情況 – 0123456789
長度為9有2種情況 – 012345678,123456789
長度為8有3種情況 。。。 – 01234567,12345678,23456789
那麼可以從最大長度開始檢索,可以降低複雜度
每得到1個子串,就去判斷該子串是否有重複的字元。若沒有重複字元即為最大長度。
#include
#include
#include
intcompare
(char
*str,
int start,
int end)
}return1;
}int
lengthoflongessubstring
(char
*s)}
}return1;
}int
main
(int argc,
char
**ar**)
最大不重複子串
思路 利用hash表hashtable 256 來儲存出現過的字元,然後從頭開始遍歷字串,1 如果當前字元ch已經出現過 hashtable ch 1 則表示乙個區域性最長不重複子串已經出現 此時判斷該子串長度len是否大於mlen,如果是,則更新mlen,以及最長子串的起始位置mstart。同時將...
leetcode 3 找到最大不重複子字串
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 ...
求不重複子字串的最大長度
my solution 位置 0123 45字串abc dbe 設定乙個128長度的陣列,作為每個字元是否出現過的標誌位,1表示沒出現過,i表示該字母出現在字串的第i位。遍歷字串,若該字元標誌位為 1,則長度加一,若不為 1,則轉到step3.清空無法使用的字元的標誌位為 1 無法使用即 本次計算字...