3.lengthOfLongestSubstring
来源:互联网 发布:网络共享会议通知软件 编辑:程序博客网 时间:2024/05/17 07:51
题目:Given a string, find the length of the longest substring without repeating characters.
Examples:
Given "abcabcbb"
, the answer is "abc"
, which the length is 3.
Given "bbbbb"
, the answer is "b"
, with the length of 1.
Given "pwwkew"
, 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.
Subscribe to see which companies asked this question.
class Solution {public: int lengthOfLongestSubstring(string s) { }};解题思路:具体见参考算法,这个算法会让你眼前一亮
参考算法如下:
int lengthOfLongestSubstring(string s) {vector<int> dict(256, -1);//ascii共占8位二进制数,共256个字符编码,其中包括a~zint maxLen = 0, start = -1;for (int i = 0; i != s.length(); i++) {if (dict[s[i]] > start)start = dict[s[i]];//发现和前面重复的字母,并改变start标志dict[s[i]] = i;maxLen = max(maxLen, i - start);}return maxLen;}
法二:
int lengthOfLongestSubstring( std::string s ){int MaxLength = 0;auto left = s.begin();std::unordered_map<char, std::string::iterator> m;for ( auto p = s.begin(); p != s.end(); ++p ){left = m.find( *p ) == m.end() ? left : std::max( left, std::next( m.find( *p )->second ) );MaxLength = std::max( MaxLength, (int) std::distance( left, std::next( p ) ) );m[*p] = p;}return MaxLength;}
0 0
- 3.lengthOfLongestSubstring
- lengthOfLongestSubstring
- leetcode lengthOfLongestSubstring
- LeetCode3.lengthOfLongestSubstring
- Problem3:lengthOfLongestSubstring
- 3.SetTimer
- 3. References
- 3. 当事人
- 3.当事人
- 3. 代词
- 3.函数
- 3. 光标
- 3.图像
- 3.类
- 3. 教程
- 3.scaling
- 3.军训
- 3.指针
- Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
- C++ 模板
- 内联函数与普通函数的区别是什么
- LoadRunner出现error问题及解决方法总结
- CCF CSP试题 201412-2 Z字形扫描
- 3.lengthOfLongestSubstring
- Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
- mysql安装教程
- Ubuntu下su:authentication failure的解决办法
- php入坑系列
- 随机算法java实现(同生日问题以及扑克牌24数问题)
- webpack打包react项目
- 框架模式-MVVM
- UISwitch for Mac OS X