求不重複子字串的最大長度

2021-08-21 03:58:55 字數 598 閱讀 1247

my solution:位置

0123

45字串abc

dbe

設定乙個128長度的陣列,作為每個字元是否出現過的標誌位,-1表示沒出現過,i表示該字母出現在字串的第i位。

遍歷字串,若該字元標誌位為-1,則長度加一,若不為-1,則轉到step3.

清空無法使用的字元的標誌位為-1(無法使用即:本次計算字串長度的起始位begin,到該重複位之間字元第乙個b,如:abcdbe,遇到第二個b時,需要清空ab)

將b的標誌位置為4(此次出現的位置),將begin指標指向位置1

每次遇到重複字元時,首先記錄當前長度,遍歷結束後取最大

discuss:

int lengthoflongestsubstring(string s) 

return maxlen;

}

思路差不多,在遇到相同字元時,處理方法更加簡單,無需置空重複字元之前的無用字元,通過下標是否大於start(同begin)即可判斷。

先判斷dict[s[i]] > start

求字串中的最長不重複子串

題目描述 給定一字串只包含數字,請寫乙個演算法,找出該字串中的最長不重複子串 不重複是指子串中每一元素不同於子串中其他元素 如 120135435 最長不重複子串為 201354 實現如下 時間複雜度o n 空間複雜度o m class solution void maxnonrepetitives...

求不重複子串數

試題 演算法提高 著急的wyf 不同子串個數 提交此題 資源限制 時間限制 476ms 記憶體限制 256.0mb 問題描述 由於戰網的密碼是一串亂碼,wyf巧妙地忘記了他的密碼。他就是作死,如同自掘墳墓。說到掘墳墓,問題就來了 挖掘機技術究竟哪家強?他現在非常著急,走投無路,都快飛起來了。他只記得...

最大不重複子串

思路 利用hash表hashtable 256 來儲存出現過的字元,然後從頭開始遍歷字串,1 如果當前字元ch已經出現過 hashtable ch 1 則表示乙個區域性最長不重複子串已經出現 此時判斷該子串長度len是否大於mlen,如果是,則更新mlen,以及最長子串的起始位置mstart。同時將...