我正在寻找这个问题的解决方案:
给定一个字符串s,找出不重复字符的最长子字符串的长度
发布了以下解决方案,但我很难理解dict
的作用。我试着在c++中寻找文档。然而,我什么也没找到。有人能解释一下它是如何工作的吗,我在哪里可以找到文档?
int lengthOfLongestSubstring(string s) {
vector<int> dict(256, -1);
int maxLen = 0, start = -1;
for (int i = 0; i != s.length(); i++) {
if (dict[s[i]] > start)
start = dict[s[i]];
dict[s[i]] = i;
maxLen = max(maxLen, i - start);
}
return maxLen;
}
dict
就是这个vector<int>
的名字,第一个参数是向量的大小,第二个是应该分配给它所有位置的值。
这是使用其构造函数的一种可能方法,查看本页的示例。