美文网首页
无重复字符的最长子串

无重复字符的最长子串

作者: 漆黑烈焰武士G | 来源:发表于2019-08-17 21:40 被阅读0次

    无重复字符的最长子串

    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

    示例 1:

    输入: "abcabcbb"
    输出: 3 
    解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
    

    示例 2:

    输入: "bbbbb"
    输出: 1
    解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
    

    示例 3:

    输入: "pwwkew"
    输出: 3
    解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
         请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
    

    模板:

    class Solution {
    public:
        int lengthOfLongestSubstring(string s) {
            
        }
    };
    

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    class Solution {
    public:
        int lengthOfLongestSubstring(string s) {
            
            //ASCII表共能表示256个字符
            int vec[256];//明明只是个数组不知道为啥起名叫vec
            //[-1,-1,-1,-1,-1,-1,……,-1,-1,-1]
            for(int i=0;i<256;i++)
                vec[i]=-1;
            
            int in=-1,maxx=0;
            
            for(int i=0;i<s.length();i++)//遍历字符串
            {
                //step2(再看这里)
                //当(vec[s[i]] > -1)的时候,说明vec已经经历了下面的赋值
                //之后的vec[s[i]]只要被赋值,就一定比in大
                //所以in值就是每次重复的时刻,也就是每次不重复字符串的起点
                //in只要被赋值就说明该字母已经重复过(最少这就是第一次)
                if(vec[s[i]] > in)
                {
                    in= vec[s[i]];
                }
                
                vec[s[i]]=i;
                /*step1(先看这里)
                    "pwwpew"所要经历的:
                    vec[p] = 0;vec[w] = 1;vec[w] = 2;vec[p] = 3;vec[e] = 4;vec[w] = 6;
                    遍历结束后:
                    vec[p] = 3;vec[e] = 4;vec[w] = 6;
                */
         
                //step3(最后看这里)
                //i-in 就是每次循环与不重复字符串起点的差值
                //找到最大的差值并赋值即可
                if(maxx<i-in)
                    maxx=i-in;
             }
                
            return maxx;
        }
        
    };
    

    相关文章

      网友评论

          本文标题:无重复字符的最长子串

          本文链接:https://www.haomeiwen.com/subject/lrxlsctx.html