#include <iostream>
#include <assert.h>
//using namespace std;
//暴力匹配法,时间复杂度比较高,从头到尾进行,分割出每一个子串,子串之间进行比较,较大的进行长度取值
//class Solution {
//public:
// void lengthOfLongestSubstring(string s)
// {
// assert(s.length()!=NULL);
// string maxstring;
// string currentstring;
// int tmp=0;
// for(int i=0;i<(int)s.length();i++)
// {
// for(int j=0;j<(int)currentstring.length();j++)
// {
// if(currentstring[j]==s[i])
// {
// if(maxstring.length()>=currentstring.length())
// {
// currentstring.clear();
// }
// else
// {
// maxstring.clear();
// maxstring=currentstring;
// currentstring.clear();
// }
// i=++tmp;
// break;
// }
// }
// currentstring.push_back(s[i]);
// }
// if(maxstring.length()>=currentstring.length())
// {
// currentstring.clear();
// }
// else
// {
// maxstring.clear();
// maxstring=currentstring;
// currentstring.clear();
// }
// cout<<maxstring.length()<<endl;
// }
//};
//int main()
//{
// string arr("aas");
// Solution A;
// A.lengthOfLongestSubstring(arr);
//}
int lengthOfLongestSubstring(std::string s)
{
int size,i=0,j,k,max=0;
size = s.size();
for(j = 0;j<size;j++)
{
for(k = i;k<j;k++)
if(s[k]==s[j])//这个for循环是判断当前子串里有没有和刚插入的数值是否有相同的
{
i = k+1;//有重复的就会进行新字串的定位
break;
}
if(j-i+1 > max)//判断当前子串与最长子串谁长
max = j-i+1;
}
return max;
}
int main()
{
std::string arr("aaaasd");
std::cout<<lengthOfLongestSubstring(arr)<<std::endl;
}