問題:給定乙個字串,找出不含有重複字元的最長子串的長度。
示例:給定"abcabcbb"
,沒有重複字元的最長子串是"abc"
,那麼長度就是3。
給定"bbbbb"
,最長的子串就是"b"
,長度是1。
給定"pwwkew"
,最長子串是"wke"
,長度是3。請注意答案必須是乙個子串,"pwke"
是 子串行 而不是子串。
思路:
首先要儲存遍歷到未重複的字元,這裡可以用雜湊表,當然python裡可以用字典,c/c++可以用128位的陣列標誌ascii碼中的128位字元。這道題主要就是考慮子串的起點和終點在**,起點不能簡單地從重複字元開始算,因為重複字元之間肯定沒有其他重複字元了,所以這裡需要用兩個標誌標註子串的起點和終點,當重複了以後,則從上乙個起點的下乙個字元開始遍歷。
**:c/c++
#include #include using namespace std;
/** * definition for singly-linked list.
* struct listnode
* };
*/int lengthoflongestsubstring(string s) ;
int len = 0;
int max = len;
int n_iter = 0;
int pre = n_iter;
while( n_iter < s.size())//直到整個字串都遍歷完成
for(int j = 0;j<256;j++)//清空標誌位
pre = n_iter;//更新起點為現在開始遍歷的位置
zimu[s[n_iter]] =1;
len = 1;
} else
n_iter ++;
} return max;
}int main()
演算法題 無重複字元的最長子串
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 ...
php演算法題 無重複字元的最長子串
閱讀量終於破萬了,不容易啊,不過看到訪問量大的也就那麼幾個,都是比較常見的問題,其他的文章仍然是沒人理採。不說這了,說說今天做的乙個演算法提,頭大啊 題目給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc...
無重複字元最長子串
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 ...