Given a string, find the length of the longest substring without repeating characters.
Example 1:
Input: "abcabcbb"
Output: 3
Explanation: The answer is "abc"
, with the length of 3.
Example 2:
Input: "bbbbb"
Output: 1
Explanation: The answer is "b"
, with the length of 1.
Example 3:
Input: "pwwkew" Output: 3 Explanation: The answer is"wke"
, with the length of 3. Note that the answer must be a substring,"pwke"
is a subsequence and not a substring.
#include<iostream>
#include<vector>
#include<cstring>
using namespace std;
int main()
{
char str[10000];
cin >> str;
vector<int> v1(1000,-1);
int max=0;
int start = 0;
int i;
int len = strlen(str);
for(i = 0;i < len;++i)
{
if(v1[str[i]] == -1 || start < i -v1[str[i]])
{
start++;
}
else
{
start = i - v1[str[i]];
}
if(max < start)
{
max = start;
}
v1[str[i]] = i;
}
cout << max;
return 0;
}