如何从给定的字符串中找到最长子字符串的长度而不使用 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 c = new List();
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
热门推荐
1 训练狗狗基础
2 怎么训练狗狗笑
3 怎么训练狗狗卧下
4 上海狗狗训练基地
5 训练狗狗排便
6 狗狗基础训练
8 如何训练狗狗装死
9 狗狗站姿训练
10 狗狗训练用品
11 训练狗狗吧
12 狗狗要怎么训练
13 怎么训练狗狗玩球
14 训练狗狗唤回
15 狗狗训练躺下
16 狗狗训练指令
17 狗狗的训练技巧
18 狗狗不好训练