3. 无重复字符的最长子串

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

示例 1:

输入: "abcabcbb"

输出: 3

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

示例 2:

输入: "bbbbb"

输出: 1

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

示例 3:

输入: "pwwkew"

输出: 3

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

     请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

 int lengthOfLongestSubstring(string s) {

       int begin = 0;

       int res = 0;

       string word = "";

       int char_map[128] = {0};

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

       {

           char_map[s[i]]++;

           if(char_map[s[i]] == 1)

           {

               word += s[i];

               if(res < word.size())

                res = word.size();

           }

           else

           {

               while(begin < i && char_map[s[i]] > 1)

               {    

                   char_map[s[begin]]--;

                   begin++;

               }

               word = "";

              for(int j = begin;j <= i;j++)

                    word += s[j];

           }

       }

       return res;

    }

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容