您的位置:首页 > 其它

LeetCode 3 最大不重复子串

2015-09-10 16:58 309 查看
找出最大不重复子串

关键在于利用哈希表的查找优势,设置一个记录不重复字串的开始位置。需要线性时间

public class Solution {

    public int LengthOfLongestSubstring(string s)

    {

        Dictionary<char,int> dict=new Dictionary<char,int>();

        int a=0,cur=0,max=0;

        for(int i=0;i<s.Length;i++)

        {

            if(!dict.Keys.Contains(s[i]))

            {

                dict.Add(s[i],i);

                cur++;

                max=max>cur?max:cur;

            }

            else

            {

                a=a<dict[s[i]]?dict[s[i]]:a;

                cur=i-a;

                max=max>cur?max:cur;

                dict[s[i]]=i;

            }

        }

        return max;

    }

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息