Longest Substring Without Repeating Characters
Total Accepted: 23601 Total Submissions: 105691Given 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.
//Longest Substring Without Repeating Characters
#include<iostream>
#include<string>
using namespace std;
class Solution {
public:
int check(int s,int e,string str)
{
for(int i=s; i<=e-1; ++i)
{
if(str[i]==str[e])
{
return i;
}
}
return -1;
}
int lengthOfLongestSubstring(string s) {
int len = s.length();
if(len<=1)//0-1
{
return len;
}
int max_len=0;
int start=0,end=1;
while(end<len)
{
int fg = check(start,end,s);
if(fg!=-1)
{
max_len = max_len>(end-start)?max_len:(end-start);
start=fg+1;//优化
++end;
}
else
{
++end;
}
}
max_len = max_len>(end-start)?max_len:(end-start);//末尾情况
return max_len;
}
};
int
main()
{
Solution sn;
string str;
cin>>str;
cout<<sn.lengthOfLongestSubstring(str)<<" ";
return 0;
}
本文探讨如何在给定字符串中找到最长的无重复字符子串,通过算法实现并提供了一个C++解决方案。

150

被折叠的 条评论
为什么被折叠?



