最長不重複子串

2021-09-27 06:18:34 字數 565 閱讀 4323

給定乙個字串,找出不含有重複字元的最長子串。

示例:給定 「abcabcbb」 ,沒有重複字元的最長子串是 「abc」 。

給定 「bbbbb」 ,最長的子串就是 「b」 。

給定 「pwwkew」 ,最長子串是 「wke」。

通過兩個指標來遍歷字串,乙個指標為最長子串的起點i,另乙個為最長子串的終點j

用乙個陣列來記錄這個字元是否重複,1表示存在,0表示不存在。

先讓j開始遍歷,遍歷乙個就將陣列的j字元存為1

如果這個字元已經存在,比較長度,讓i開始遍歷,位置為當前j字元的下乙個字元

public class 最長不重複子串 

while(l[i] != l[j])

i++;j++;

}else

}if(maxlenth < n - i)

string result = s.substring(low,high);

return result;

}public static void main(string args)

}

最長不重複子串

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

最長不重複子串

演算法參考 找到乙個字串中的乙個連續子串,這個子串內不能有任何兩個字元是相同的,並且這個子串是符合要求的最長的。例如輸入 abcbef 輸出 cbef o n 的演算法,具體思路如下 以abcbef這個串為例,用乙個陣列pos記錄每個元素曾出現的下標,初始化為 1。從s 0 開始,依次考察每個字元,...

最長不重複子串

題目鏈結 給定乙個字串,找到最長的子串,要求該子串中沒有重複的字元。例如 字串abcabcbb的不含重複字元的 最長 子串為abc,長度為 3。而bbbbbb的不含重複字元的 最長 子串為b,長度為 1。輸入格式 輸入包含多行,每一行對應乙個長度不超過 100 的輸出,直到遇到結束符為止。每行依次輸...