lintcode ---最长无重复的字串

来源:互联网 发布:情感寄语一叶落而知秋 编辑:程序博客网 时间:2024/05/02 11:33
 int lengthOfLongestSubstring(string s)     {        // write your code here        unordered_map<char,int> m;        int start =1,res=0;        for(int i=1;i<=s.length();i++)        {            char str = s[i-1];            if(m[str]>=start)            {                start = m[str]+1;                m[str] = i;            }            else            {                m[str] = i;                res = max(res,i-start+1);            }        }        return res;    }


思路:遍历字符串,如果不相同,更新距离,(注意:无论是否出现重复都把当前索引赋给当前字符,是为了判断是否在start 后边出现重复的条件);如果出现相同,(即当前字符的索引大于等于start),就更新start 成为一个新字符串的开始!(例如:abcdbc 开始的时候start = 1,当第二个b出现的时候start = 3 即字母c所在的位置索引)



0 0
原创粉丝点击