如何使用 C# 從給定的字串中查詢不重複字元的最長子串的長度?
透過使用滑動視窗技術,讓 2 個指標 i 和 j 從給定的字串輸入中查詢不重複字元的最長子串。i 和 j 都指向字串中的相同字元。遍歷字串並將它新增到列表中。如果找到重複的字元,則從列表中將它刪除,否則附加到列表中。
示例 1
輸入 − s = "abcabcbb"
輸出 − 3
說明 − 答案是 "abc",長度為 3。
示例 2
輸入 − s = "bbbbb"
輸出 − 1
說明 − 答案是 "b",長度為 1。
時間複雜度 − O(N)
空間複雜度 − O(N)
示例
public class Arrays{
public int LongestSubstringWithNoRepeatingCharacters(string s){
List<char> c = new List<char>();
int iPointer = 0;
int jpointer = 0;
int max = 0;
while (jpointer < s.Length){
if (c.Contains(s[jpointer])){
c.Remove(s[iPointer]);
iPointer++;
}
else{
max = Math.Max(c.Count(), max);
c.Add(s[jpointer]);
jpointer++;
}
}
return max;
}
}
static void Main(string[] args){
int res = s.LongestSubstringWithNoRepeatingCharacters("abcabcbb");
Console.WriteLine(res);
}輸出
2
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP