首页 > 其他 > 详细

3. Longest Substring Without Repeating Characters无重复字符的最长子串

时间:2019-04-04 21:53:15      阅读:101      评论:0      收藏:0      [点我收藏+]

网址:https://leetcode.com/problems/longest-substring-without-repeating-characters/

显然采用sliding window滑动窗口法,辅助以哈希表,判断字符是否已使用

  • 不断扩充 j,直到 s[j] 已经使用
  • 此时,把 i 移动到 j 之前的 s[j] 字符前面,继续循环
  • class Solution {
    public:
        int lengthOfLongestSubstring(string s)
        {
            int i = 0, j;
            int ans = 0;
            map<char, int> mp;
            for(j = 0; j<s.size(); j++)
            {
                if(mp.find(s[j]) == mp.end() || mp[s[j]] == 0)
                {
                    mp[s[j]] = 1;
                }
                else
                {
                    ans = max(ans,(j-i));
                    while(s[i] != s[j])
                    {
                        mp[s[i]] = 0;
                        i++;
                    }
                    i++;
                }
            }
            ans = max(ans,(j-i));
            return ans;
        }
    };

    技术分享图片

     

 

3. Longest Substring Without Repeating Characters无重复字符的最长子串

原文:https://www.cnblogs.com/tornado549/p/10657105.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!