Leetcode #3 Longest Substring Without Repeating Characters
2015-09-13 17:02
309 查看
Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without
repeating letters for "abcabcbb" is "abc", which the length is 3. For "bbbbb" the longest substring is "b", with the length of 1.
借鉴了别人的思路,采用双指针,结合map
#include<map>
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int maxlength =1;
map<char,int> mymap;
if(s.length()==0)
return 0;
if(s.length()==1)
return 1;
int start = -1;
for(int i=0;i<s.length();++i)
{
if(mymap.count(s[i])==0)
{
mymap.insert(make_pair(s[i],i));
}
else
{
if(mymap[s[i]]>start) //Important, we only care elements in our sliding window
start = mymap[s[i]];
mymap[s[i]] = i;
}
if(i-start >maxlength)
maxlength = i-start;
}
return maxlength;
}
};
repeating letters for "abcabcbb" is "abc", which the length is 3. For "bbbbb" the longest substring is "b", with the length of 1.
借鉴了别人的思路,采用双指针,结合map
#include<map>
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int maxlength =1;
map<char,int> mymap;
if(s.length()==0)
return 0;
if(s.length()==1)
return 1;
int start = -1;
for(int i=0;i<s.length();++i)
{
if(mymap.count(s[i])==0)
{
mymap.insert(make_pair(s[i],i));
}
else
{
if(mymap[s[i]]>start) //Important, we only care elements in our sliding window
start = mymap[s[i]];
mymap[s[i]] = i;
}
if(i-start >maxlength)
maxlength = i-start;
}
return maxlength;
}
};
相关文章推荐
- Java订单号生成工具(实现一)基于对象锁
- Unix网络编程中的I/O模型
- 使用单例和工厂设计模式实现dao实现层的解耦
- 第2周、项目2—程序的多文件组织
- linux下R的安装
- 每个程序员都该知道的10大编程格言
- 使用获取subview获取子view
- java 彩票系统
- HashMap工作原理
- 第11章 Windows线程池(1)_传统的Windows线程池
- [PHP学习教程 - 网络]002.获取网页内容(URL Content)
- Vmware vSphere Client克隆虚拟机
- 子串的个数(惨遭水题无情吊打!!!)
- spring aop
- leetcode-ZigZag Conversion
- http-关于application/x-www-form-urlencoded等字符编码的解释说明
- VB关机恶搞小程序
- android input子系统详解
- HDU 5446 Unknown Treasure
- java web简易计算器