leetcode吧 关注:1,113贴子:2,373
  • 1回复贴,共1

3. 没有重复字母的最长子串 [leetcode 3: Longest Substring Wit

只看楼主收藏回复







IP属地:四川1楼2018-11-22 21:33回复
    public int LengthOfLongestSubstring(string s) {
    if (s.Length == 0) return 0;
    if (s.Length == 1) return 1;
    List<char> record = new List<char>();
    int longest = 0;
    for (int i = 0; i < s.Length; i++)
    {
    if (record.Contains(s[i]))
    {
    if (record.Count > longest)
    {
    longest = record.Count;
    }
    int indexd = record.IndexOf(s[i]);
    if (record.Count - (indexd + 1) > 0)
    {
    record = record.GetRange(indexd + 1, record.Count - (indexd + 1));
    }
    else { record = new List<char>(); }
    }
    record.Add(s[i]);
    }
    longest = Math.Max(longest, record.Count);
    return longest;
    }
    Runtime: 112 ms, faster than 57.99% of C# online submissions for Longest Substring Without Repeating Characters.
    我的算法。 其实也想到用两个指针,但是怎么做到判断开始出现重复了。
    用string 里面的indexof!=-1呢 我真的是千年List 就用List的Contains了 等下我改成string的 会不会更快一点呢。


    IP属地:上海2楼2018-12-25 17:44
    回复