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

2021-08-07 15:10:33 字數 554 閱讀 8303

題目描述:

給定一字串只包含數字,請寫乙個演算法,找出該字串中的最長不重複子串(不重複是指子串中每一元素不同於子串中其他元素)

如:「120135435」最長不重複子串為 「201354」

實現如下:

//時間複雜度o(n)

//空間複雜度o(m)

class

solution

void maxnonrepetitivestring(string str)

len = maxnum(len, current); //更新最長無重複子串的長度

map[str[j]] = j; //更新str[j]字元最後一次出現的位置下標

}//列印最長無重複子串

for (int k = begin; k <= end; ++k)

cout << str[k];

}};

求最長重複子串 和 最長不重複子串 思路

題目 求任意乙個字串中的所有最長重複字串和所有最長不重複子串 最長不重複子串的解法 設定乙個輔助資料結構 如map 記錄每個字元最後一次出現的位置 遍歷字串中的每個字元,如果在map中沒有出現,則不重複子串的長度 1,並更新最大字串的長度值 如果在map中已經出現過,則更新當前字元在map中的位置和...

求字串最長的重複子串

題目 給定乙個字串,求出其最長的重複子串 最長重複子串可以重疊 如字串abcdabcabcd,其最長的重複子串為abcd 如字串abcdabcda,其最長的重複子串為abcda。演算法思想 對字串生成相應的字尾陣列,再對其排序,排序後依次檢測相鄰兩個字串的公共字首,時間複雜度為o n 2 logn ...

最長不重複子串

出處 勇幸 thinking 題 從乙個字串中找到乙個連續子串,該子串中任何兩個字元不能相同,求子串的最大長度並輸出一條最長不重複子串。本節從最直接的方法逐步優化,漸進探索了四種實現方式,並最終找到時間複雜度為o n 輔助空間為常數的方案,內容如下 基本演算法 使用hash dp方案 dp hash...