leetcode3.无重复字符的最长字串C++滑动窗口-创新互联
class Solution {
public:
int lengthOfLongestSubstring(string s) {
unordered_setoccur;
int len = s.size();
int res = 0;
int right = 0;
int left = 0;
for(; left< len; left++){
if(left != 0){
occur.erase(s[left-1]);
}
while(right< len && !occur.count(s[right])){
occur.insert(s[right]);
right++;
}
res = max(res, right - left);
}
return res;
}
};
两重循环,left作为遍历字符串左边界时,right向右移动作为有边界,右移动的过程中使用无重复的occur哈希表存储right的访问字符。左边界移动时,移除上次左边界的元素。
成都创新互联专注于宽甸企业网站建设,自适应网站建设,购物商城网站建设。宽甸网站建设公司,为宽甸等地区提供建站服务。全流程按需求定制开发,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务技巧:
unordered_set 的count方法,size方法 ,erase方法
更新res的max方法
改进:
hashset存储字符最后一次出现的位置,max的作用保证左边界的存在与窗口内不出现重复的字符.
力扣
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
当前文章:leetcode3.无重复字符的最长字串C++滑动窗口-创新互联
转载来源:http://myzitong.com/article/jidch.html