给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
方法根据官方题解:
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int n = s.length(), ans = 0;
int index[128] = {}; // current index of character
// try to extend the range [i, j]
for (int j = 0, i = 0; j < n; j++) {
//index数组里存放的是s[j]的位置,128防止s[j]超出,s[j]为char型
//同理可用map,存放每个s[j]的位置作为value
i = max(index[s[j]], i);
ans = max(ans, j - i + 1);
index[s[j]] = j + 1;
}
return ans;
}
};