:::info 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 :::
using System;using System.Collections.Generic;namespace Combine{class Program{static void Main(string[] args){int data;var x = new Solution();data = x.LengthOfLongestSubstring("cdsvcsafgbtdabtgdsa");Console.WriteLine(data);}public class Solution{public int LengthOfLongestSubstring(string s){// 判断字符串长度为0/1,直接输出字符串长度if (s.Length < 2){return s.Length;}var left = 0;var right = 0;var maxlen = 0;var charSet = new HashSet<char>();while (right < s.Length) // 当最右边到达字符串长度时,停止运行{if (charSet.Contains(s[right])){charSet.Remove(s[left++]);}else{charSet.Add(s[right++]);maxlen = Math.Max(maxlen, right - left);// 当前最大值和right-left的长度取最值}}return maxlen;}}}}
