面試題 最長不含重複字元的子字串

2021-08-15 07:40:38 字數 549 閱讀 4287

請從字串中找出乙個最長的不包含重複字元的子字串,計算該最長子字串的長度。假設字串中只包含'a'~'z'的字元。例如,在字串「arabcacfr」中,最長的不含重複字元的子字串是「acfr」,長度為4。

思路:常規套路的話,先求有多少個子字串,再看看是否有重複字元,那麼一套下來就要o(n^3)。有點多,那麼就用動態規劃咯。

int longestsubstringwithoutduplication(const std::string& str)

int curlength=0;

int maxlength=0;

int* position=new int[26] ;

for(int i=0;i<26;i++)

position[i]=-1;

for(int i=0;i

position[str[i]-'a']=i;}

if(curlength>maxlength)

maxlength=curlength;

delete position;

return maxlength;

面試題48 最長不含重複字元的子字串

請從字串中找出乙個最長的不包含重複字元的子字串,計算該最長子字串的長度。假設字串中只包含a z的字元。例如,在字串 arabcacfr 中,最長的不含重複字元的子字串是 acfr 長度為4。我們定義函式f i 表示以第i個字元為結尾的,不包含重複字元的子字串的最長長度。我們從左到右逐一掃瞄字串中的每...

面試題48 最長不含重複字元的子字串

題目描述 請從字串中找出乙個最長的不包含重複字元的子字串,計算該最長子字串的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pw...

面試題48 最長不含重複字元的子字串

題目 請從字串中找出乙個最長的不包含重複字元的子字串,計算該最長子字串的長度。示例 示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 p...