7)Length of the longest substring-(sliding window | variable size)
Given a string S, find the length of the longest substring without repeating characters.
Example 1:
Input:
S = "geeksforgeeks"
Output:
7
Explanation:
Longest substring is
"eksforg".
Example 2:
Input:
S = "abdefgabef"
Output:
6
Explanation:
Longest substring are
"abdefg" , "bdefga" and "defgab".
c++ implementation:
int lengthOfLongestSubstring(string a)
{
int i=0;int j=0; int n=a.length();
int len=0;int count=0;
unordered_map<char,int>map;
while(j<n)
{
if(map[a[j]]==1)
{
map[a[j]]++;
if(map[a[j]]>1)
count++;
}
else
map[a[j]]++;
if(count==0)
{
len=max(len,j-i+1);
}
else if(count>0)
{
while(count>0)
{
map[a[i]]--;
if(map[a[i]]==1)
count--;
i++;
}
}
j++;
}
return len;
}
Time Complexity: O(n)
space Complexity: O(n)
No comments