题解 | 最长不含重复字符的子字符串
最长不含重复字符的子字符串
https://www.nowcoder.com/practice/48d2ff79b8564c40a50fa79f9d5fa9c7
#include <string>
#include <unordered_map>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return int整型
*/
int lengthOfLongestSubstring(string s) {
unordered_map< char, int> mp;
int left = 0, right = 0, ans = 0;
for ( ; right < s.size(); right ++ )
{
mp[s[right]] ++;
// 当哈希表重复元素中出现的次数减为1时,意味着left已经移动到了合适的位置
while ( mp[s[right]] > 1 ) mp[s[left++]]--;
ans = max ( ans, right - left + 1 );
}
return ans;
}
};