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;
}
};