w3resource

C Exercises: Find length of the longest substring of a given string without repeating characters

C Programming Practice: Exercise-2 with Solution

Write a C program to find length of the longest substring of a given string without repeating characters.

Note:
1) Given string consists of English letters, digits, symbols and spaces.
2) 0 <= Given string length <= 5 * 104

Difficulty: Medium.
Company: Amazon, Google, Bloomberg, Microsoft, Adobe, Apple, Oracle, Facebook and more.

Input String : xyzxyzyy
The longest Substring Length : 3
The longest substring : xyz

Input String : pickoutthelongestsubstring
The longest Substring Length : 8
The longest substring : ubstring

Input String : ppppppppppppp
The longest substring : p
The longest Substring Length : 1

Input String : Microsoft
The longest substring : Micros
The longest Substring Length : 6

C Code:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
static int length_of_longest_substring(char *str1)
{
   int offset[128];
   int substr_max_len = 0;
   int len = 0;
   int index = 0;
   memset(offset, 0xff, sizeof(offset));
   while (*str1 != '\0') {
       if (offset[*str1] == -1) {
           len++;
         }
                   else {
           if (index - offset[*str1] > len)
                                     {
               len++;
           }
                            else
                            {
                len = index - offset[*str1];
           }
       }
       if (len > substr_max_len)
                  {
           substr_max_len = len;
       }
       offset[*str1++] = index++;
   }
   return substr_max_len;
}
int main(void)
 {
   char *str1 = "xyzxyzyy";
         printf("\nOriginal String: %s", str1);
         printf("\nLength of the longest substring without repeating characters: %d\n", length_of_longest_substring(str1));
         return 0;
}

Sample Output:

Original String: xyzxyzyy
Length of the longest substring without repeating characters: 3

Pictorial Presentation:

C Programming: Find length of the longest substring of a given string without repeating characters.

Flowchart:

C Programming Flowchart: Find length of the longest substring of a given string without repeating characters.

C Programming Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a C programming to get the indices of the two numbers of a given array of integers, such that the sum of the two numbers equal to a specific target.
Next: Write a C program to find the median of the two given sorted arrays which are not empty.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Share this Tutorial / Exercise on : Facebook and Twitter

C Programming: Tips of the Day

Maximum value of int:

In C:

#include <limits.h>
then use
int imin = INT_MIN; // minimum value
int imax = INT_MAX;

or

#include <float.h>

float fmin = FLT_MIN;  // minimum positive value
double dmin = DBL_MIN; // minimum positive value

float fmax = FLT_MAX;
double dmax = DBL_MAX;

Ref : https://bit.ly/3fi8yk9