# Length of the longest substring with no consecutive same letters

Given a string str, the task is to find the length of the longest sub-string which does not have any pair of consecutive same characters.

Examples:

Input: str = “abcdde”
Output: 4
“abcd” is the longest

Input: str = “ccccdeededff”
Output: 5
“ededf” is the longest

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: The following steps can be followed to solve the above problem:

• Initialize cnt and maxi as 1 initially, since this is the minimum answer of the length of the longest answer.
• Iterate in the string from 1 to n – 1 and increment cnt by 1 if str[i] != str[i – 1].
• If str[i] == str[i – 1], then re-initialize cnt as 1 and maxi to max(maxi, cnt).

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach ` `#include ` `using` `namespace` `std; ` ` `  `// Function to return the length ` `// of the required sub-string ` `int` `longestSubstring(string s) ` `{ ` `    ``int` `cnt = 1; ` `    ``int` `maxi = 1; ` ` `  `    ``// Get the length of the string ` `    ``int` `n = s.length(); ` ` `  `    ``// Iterate in the string ` `    ``for` `(``int` `i = 1; i < n; i++) { ` ` `  `        ``// Check for not consecutive ` `        ``if` `(s[i] != s[i - 1]) ` `            ``cnt++; ` `        ``else` `{ ` ` `  `            ``// If cnt greater than maxi ` `            ``maxi = max(cnt, maxi); ` ` `  `            ``// Re-initialize ` `            ``cnt = 1; ` `        ``} ` `    ``} ` ` `  `    ``// Check after iteration ` `    ``// is complete ` `    ``maxi = max(cnt, maxi); ` ` `  `    ``return` `maxi; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``string s = ``"ccccdeededff"``; ` `    ``cout << longestSubstring(s); ` ` `  `    ``return` `0; ` `} `

## Java

 `// Java implementation of the approach  ` `import` `java.lang.Math; ` ` `  `class` `GfG ` `{ ` ` `  `    ``// Function to return the length  ` `    ``// of the required sub-string  ` `    ``static` `int` `longestSubstring(String s)  ` `    ``{  ` `        ``int` `cnt = ``1``, maxi = ``1``;  ` `     `  `        ``// Get the length of the string  ` `        ``int` `n = s.length();  ` `     `  `        ``// Iterate in the string  ` `        ``for` `(``int` `i = ``1``; i < n; i++)  ` `        ``{  ` `     `  `            ``// Check for not consecutive  ` `            ``if` `(s.charAt(i) != s.charAt(i-``1``))  ` `                ``cnt++;  ` `            ``else`  `            ``{  ` `     `  `                ``// If cnt greater than maxi  ` `                ``maxi = Math.max(cnt, maxi);  ` `     `  `                ``// Re-initialize  ` `                ``cnt = ``1``;  ` `            ``}  ` `        ``}  ` `     `  `        ``// Check after iteration is complete  ` `        ``maxi = Math.max(cnt, maxi);  ` `     `  `        ``return` `maxi;  ` `    ``}  ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `main(String []args) ` `    ``{ ` `         `  `        ``String s = ``"ccccdeededff"``; ` `        ``System.out.println(longestSubstring(s)); ` `    ``} ` `} ` ` `  `// This code is contributed by Rituraj Jain `

## C#

 `// C# implementation of the approach  ` `using` `System; ` ` `  `class` `GfG  ` `{  ` ` `  `    ``// Function to return the length  ` `    ``// of the required sub-string  ` `    ``static` `int` `longestSubstring(``string` `s)  ` `    ``{  ` `        ``int` `cnt = 1, maxi = 1;  ` `     `  `        ``// Get the length of the string  ` `        ``int` `n = s.Length;  ` `     `  `        ``// Iterate in the string  ` `        ``for` `(``int` `i = 1; i < n; i++)  ` `        ``{  ` `     `  `            ``// Check for not consecutive  ` `            ``if` `(s[i] != s[i - 1])  ` `                ``cnt++;  ` `            ``else` `            ``{  ` `     `  `                ``// If cnt greater than maxi  ` `                ``maxi = Math.Max(cnt, maxi);  ` `     `  `                ``// Re-initialize  ` `                ``cnt = 1;  ` `            ``}  ` `        ``}  ` `     `  `        ``// Check after iteration is complete  ` `        ``maxi = Math.Max(cnt, maxi);  ` `     `  `        ``return` `maxi;  ` `    ``}  ` ` `  `    ``// Driver code  ` `    ``static` `void` `Main()  ` `    ``{  ` `         `  `        ``string` `s = ``"ccccdeededff"``;  ` `        ``Console.WriteLine(longestSubstring(s));  ` `    ``}  ` `}  ` ` `  `// This code is contributed by mits `

## Python3

 `# Python3 implementation of the approach  ` ` `  `# Function to return the length  ` `# of the required sub-string  ` `def` `longestSubstring(s) : ` ` `  `    ``cnt ``=` `1``;  ` `    ``maxi ``=` `1``;  ` ` `  `    ``# Get the length of the string  ` `    ``n ``=` `len``(s);  ` ` `  `    ``# Iterate in the string  ` `    ``for` `i ``in` `range``(``1``, n) :  ` ` `  `        ``# Check for not consecutive  ` `        ``if` `(s[i] !``=` `s[i ``-` `1``]) : ` `            ``cnt ``+``=` `1``;  ` `             `  `        ``else` `: ` `             `  `            ``# If cnt greater than maxi  ` `            ``maxi ``=` `max``(cnt, maxi);  ` ` `  `            ``# Re-initialize  ` `            ``cnt ``=` `1``;  ` ` `  `    ``# Check after iteration  ` `    ``# is complete  ` `    ``maxi ``=` `max``(cnt, maxi);  ` ` `  `    ``return` `maxi;  ` ` `  `# Driver code  ` `if` `__name__ ``=``=` `"__main__"` `: ` `     `  `    ``s ``=` `"ccccdeededff"``; ` `    ``print``(longestSubstring(s));  ` `     `  `# This code is contirbuted by Ryuga `

## PHP

 ` `

Output:

```5
```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.