Longest Substring Without Repeating Characters
2015-07-30 18:13
363 查看
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int len=s.size();
if(s.size()==0) return 0;
int max1=1;
int count;
int j=0;
unordered_map<char,int>imap;
//imap.insert(make_pair(s[0],0));
for(int i=0;i<len-1;i++)
{
for( j=i;j<len;j++)
{
if(imap.find(s[j])==imap.end())
imap.insert(make_pair(s[j],j));
else {
imap.find(s[j])->second=j;
break;
}
}
max1=max(max1,j-i);
imap.clear();
}
return max1;
}
};
这个比较暴力,超时了;
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int len=s.size();
if(s.size()==0) return 0;
int max1=1;
int j=0;
unordered_map<char,int>imap;
int start=0,count=0;
//imap.insert(make_pair(s[0],0));
for(int i=0;i<len;i++)
{
if(imap.find(s[i])==imap.end()||imap.find(s[i])->second<start){
// imap.insert(make_pair(s[i],i)); //如果之前有则无法插入;
imap[s[i]] = i;
count++;
}
else {
start=imap.find(s[i])->second+1; //新起点;
imap.find(s[i])->second=i; //指向最后一个(相同的);
// imap[s[i]] = i;
count=i-start+1;
}
max1=max(max1,count);
}
return max1;
}
};
public:
int lengthOfLongestSubstring(string s) {
int len=s.size();
if(s.size()==0) return 0;
int max1=1;
int count;
int j=0;
unordered_map<char,int>imap;
//imap.insert(make_pair(s[0],0));
for(int i=0;i<len-1;i++)
{
for( j=i;j<len;j++)
{
if(imap.find(s[j])==imap.end())
imap.insert(make_pair(s[j],j));
else {
imap.find(s[j])->second=j;
break;
}
}
max1=max(max1,j-i);
imap.clear();
}
return max1;
}
};
这个比较暴力,超时了;
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int len=s.size();
if(s.size()==0) return 0;
int max1=1;
int j=0;
unordered_map<char,int>imap;
int start=0,count=0;
//imap.insert(make_pair(s[0],0));
for(int i=0;i<len;i++)
{
if(imap.find(s[i])==imap.end()||imap.find(s[i])->second<start){
// imap.insert(make_pair(s[i],i)); //如果之前有则无法插入;
imap[s[i]] = i;
count++;
}
else {
start=imap.find(s[i])->second+1; //新起点;
imap.find(s[i])->second=i; //指向最后一个(相同的);
// imap[s[i]] = i;
count=i-start+1;
}
max1=max(max1,count);
}
return max1;
}
};
相关文章推荐
- LeetCode_144 Binary Tree Preorder Traversal
- js正则表达式匹配空格
- Android BlueTooth通信
- linux 信号量之SIGNAL 0<转>
- 不要问我为什么在手机浏览器不能自动播放视频跟音频
- HDU 4974 Dracula and Ethan 优先队列
- C-1.1
- Android 5.0学习之使用Palette
- nginx源码分析—启动流程
- struts2与Spring MVC的区别
- CAS4添加验证码
- 每天一点点java---继承exception类来实现自己的异常类
- 牢骚
- 找到字符串中第一个单独的字母(遍历)
- JavaWeb学习总结(五十)——文件上传和下载
- Button和Textfield 及其控件
- Android字体属性Paint.FontMetrics
- icon工具
- Windows Server 2003升级Win Ser 2008R2之前期准备
- HDU 2376 Average distance (树形dp)