alg-最长不重复子串

class Solution {
public:
    int lengthOfLongestSubstring(const std::string& s) {
        int max_length = 0; // 最大子字符串长度
        int begin_index = 0;//最大子字符串的起始索引
        int char_index[256]={0};//保存出现的字符串
        
        for(int i = 0; i < s.size(); i++){      
            if (char_index[s[i]] == 0 || char_index[s[i]] < begin_index ) {
                //字符不存在当前的最大子字符串,更新max_length
                max_length = std::max(max_length, i - begin_index + 1);
            }else{
                //该字符已经存在当前的最大子字符串,更新 begin_index
                begin_index = char_index[s[i]];
            }
            //更新char_index[s[i]]
            char_index[s[i]] = i+1;
        }
        return max_length;   
    }
};
原文地址:https://www.cnblogs.com/smallredness/p/11207045.html