题解 | 最长不含重复字符的子字符串

最长不含重复字符的子字符串

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

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务