Given a string, find the length of the longest substringwithout repeating characters.
Example 1:
Input: "abcabcbb"
Output: 3
Explanation: The answer is "abc", with the length of 3.
Example 2:
Input: "bbbbb"
Output: 1
Explanation: The answer is "b", with the length of 1.
Example 3:
Input: "pwwkew" Output: 3 Explanation: The answer is"wke", with the length of 3. Note that the answer must be a substring,"pwke"is a subsequence and not a substring.
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int result = 0;
int flag = -1;
map<char,int> smap;
for(int i = 0;i<s.size();i++)
{
if(smap.count(s[i]) && smap[s[i]] > flag)
{
flag = smap[s[i]];
}
smap[s[i]] = i;
result = max(result,i-flag);
}
return result;
}
};
本文详细解析了寻找字符串中最长无重复字符子串的算法实现,通过示例展示了如何利用滑动窗口和哈希映射(map)来高效解决问题。文章提供了完整的代码示例,并解释了其工作原理。
701

被折叠的 条评论
为什么被折叠?



