﻿ C# - Maximum length of a substring without repeating

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

## C# Sharp String: Exercise-47 with Solution

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

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

Difficulty: Medium.

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

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

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

Sample Solution:

C# Sharp Code:

``````using System;
using System.Collections.Generic;

namespace exercises
{
class Program
{
static void Main(string[] args)
{
// Define and display original string
String str1;
str1 = "aaaaaabbbbccc";
Console.WriteLine("Original String: " + str1);

// Calculate and display the length of the longest substring without repeating characters
Console.WriteLine("Length of the longest substring without repeating characters of the said string:");
Console.WriteLine(without_repeated_chars_longest_substring(str1));

// Repeat the process for different strings
str1 = "BDEFGAABEF";
Console.WriteLine("Original String: " + str1);
Console.WriteLine("Length of the longest substring without repeating characters of the said string:");
Console.WriteLine(without_repeated_chars_longest_substring(str1));

str1 = "Python";
Console.WriteLine("Original String: " + str1);
Console.WriteLine("Length of the longest substring without repeating characters of the said string:");
Console.WriteLine(without_repeated_chars_longest_substring(str1));

str1 = "Java";
Console.WriteLine("Original String: " + str1);
Console.WriteLine("Length of the longest substring without repeating characters of the said string:");
Console.WriteLine(without_repeated_chars_longest_substring(str1));
}

// Method to find the length of the longest substring without repeating characters
public static int without_repeated_chars_longest_substring(string str1)
{
if (string.IsNullOrEmpty(str1)) return 0;

// Dictionary to store character positions
var map_str = new Dictionary<char, int>();
var max_len = 0;
var last_repeat_pos = -1;

// Loop through the string
for (int i = 0; i < str1.Length; i++)
{
// Check if the character exists in the dictionary and update its last position
if (map_str.ContainsKey(str1[i]) && last_repeat_pos < map_str[str1[i]])
last_repeat_pos = map_str[str1[i]];

// Check for the maximum length of the non-repeating substring
if (max_len < i - last_repeat_pos)
max_len = i - last_repeat_pos;

// Store current character and its position in the dictionary
map_str[str1[i]] = i;
}
return max_len;
}
}
}
```;
```

Sample Output:

```Original String: aaaaaabbbbccc
Length of the longest substring without repeating characters of the said string:
2
Original String: BDEFGAABEF
Length of the longest substring without repeating characters of the said string:
6
Original String: Python
Length of the longest substring without repeating characters of the said string:
6
Original String: Java
Length of the longest substring without repeating characters of the said string:
3
```

Flowchart :

C# Sharp Code Editor:

Improve this sample solution and post your code through Disqus

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿