Given a string s, find the length of the longest substring without repeating characters.
乍看之下,原意將字符串中的字符遍歷,記錄每個字符的位置,
遇到相同的字符更新位置,然後比較長度。
來看看㊣官方範例↓
看完範例後,如果你的感想是這樣的話↓
沒關係~看看我的解法吧!
public class Solution {
public int LengthOfLongestSubstring(string s) {
var Dict = new HashSet<char>();
var str = "";
var max = 0;
var cur = 0;
for (int i = 0; i < s.Length; i++)
{
if (Dict.Contains(s[i]))
{
max = Math.Max(str.Length, max);
str = "";
Dict.Clear();
i = (++cur);
}
Dict.Add(s[i]);
str += s[i];
}
return Math.Max(max, str.Length);
}
}
看看執行結果