主页 > 人工智能  > 

【LeetCode】3.无重复字符的最长字串

【LeetCode】3.无重复字符的最长字串

目录 题目算法解法解法一 暴力枚举 + 哈希表(判断字符是否重复出现) (O( n 2 n^{2} n2))解法二 滑动窗口 + 哈希表(判断字符是否重复出现) 代码

题目

题目链接:LeetCode-3题

给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。

算法解法 解法一 暴力枚举 + 哈希表(判断字符是否重复出现) (O( n 2 n^{2} n2))

枚举每一个位置能到达的终点。 简单解法,不讲解。

解法二 滑动窗口 + 哈希表(判断字符是否重复出现) 滑动窗口的左窗口left = 0,右边窗口right = 0进窗口 让字符进入哈希表判断是否出现重复字符,如果有,出窗口,从哈希表中删除该字符更新结果 代码 class Solution { public: unordered_map<char,int> hash; int lengthOfLongestSubstring(string s) { int ret = 0; //存结果 //滑动窗口 int left = 0; int right = 0; for(right;right<s.size();right++) { //进窗口 hash[s[right]]++; //出窗口 while(hash[s[right]]>1) { hash[s[left]]--; left++; } //更新结果 ret = max(ret,right-left+1); } return ret; } };
标签:

【LeetCode】3.无重复字符的最长字串由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【LeetCode】3.无重复字符的最长字串