剑指 Offer 48. 最长不含重复字符的子字符串

剑指 Offer 48. 最长不含重复字符的子字符串
请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。

示例 1:

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

示例 2:

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

示例 3:

输入: "pwwkew"
输出: 3

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

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        int max_sub = 0, left = 0, pos = 0;
        vector<bool> flag(256, false);
        while(pos < s.size()){
            while(flag[s[pos]]){
                flag[s[left++]] = false;
            }
            max_sub = max(max_sub, pos - left + 1);
            flag[s[pos++]] = true;
        }
        return max_sub;
    }
};
上一篇:Sublime Text 3中使用正则表达式删除空行


下一篇:Qt编写安防视频监控系统48-视频参数