class Solution {
public:
int lengthOfLongestSubstring(string s) {
if(s.size()==0) return 0;
if(s.size()==1) return 1;
vector<int> dp(s.size() ,0);
dp[0] =1;
for(int i=1 ; i<s.size() ;i++)
{
string tmp;
tmp += s[i];
for(int j=i-1 ; j>=0 ;j--)
{
if(tmp.find(s[j])==-1)//为不重复的点,加入子串
{
tmp += s[j];
if(j==0)//找到最头处,记录dp
{
dp[i] = max( dp[i-1] , (int)tmp.size() );
tmp.clear();
}
}
else //找到重复的点,记录dp跳出循环
{
dp[i] = max( dp[i-1] , (int)tmp.size() );
tmp.clear();
break;
}
}
}
// for(int it:dp) cout<<it<<' ';
return dp[s.size()-1];
}
};