Maximum consecutive repeating character in string
Given a string, the task is to find the maximum consecutive repeating character in a string.
Note: We do not need to consider the overall count, but the count of repeating that appears in one place.
Examples:
Input : str = "geeekk" Output : e Input : str = "aaaabbcbbb" Output : a
The simple solution to this problem is to use two for loops. The outer loop considers the current character, the inner loop counts occurrences of the current character. If the count goes beyond the current maximum count, we update the result.
C++
// C++ program to find the maximum consecutive // repeating character in given string #include<bits/stdc++.h> using namespace std; // function to find out the maximum repeating // character in given string char maxRepeating(string str) { int len = str.length(); int count = 0; // Find the maximum repeating character // starting from str[i] char res = str[0]; for ( int i=0; i<len; i++) { int cur_count = 1; for ( int j=i+1; j<len; j++) { if (str[i] != str[j]) break ; cur_count++; } // Update result if required if (cur_count > count) { count = cur_count; res = str[i]; } } return res; } // Driver code int main() { string str = "aaaabbaaccde" ; cout << maxRepeating(str); return 0; } |
Java
// Java program to find the maximum consecutive // repeating character in given string public class GFG { // function to find out the maximum repeating // character in given string static char maxRepeating(String str) { int len = str.length(); int count = 0 ; // Find the maximum repeating character // starting from str[i] char res = str.charAt( 0 ); for ( int i= 0 ; i<len; i++) { int cur_count = 1 ; for ( int j=i+ 1 ; j<len; j++) { if (str.charAt(i) != str.charAt(j)) break ; cur_count++; } // Update result if required if (cur_count > count) { count = cur_count; res = str.charAt(i); } } return res; } // Driver code public static void main(String args[]) { String str = "aaaabbaaccde" ; System.out.println(maxRepeating(str)); } } // This code is contributed by Sumit Ghosh |
Python 3
# Python 3 program to find the # maximum consecutive repeating # character in given string # function to find out the maximum # repeating character in given string def maxRepeating( str ): l = len ( str ) count = 0 # Find the maximum repeating # character starting from str[i] res = str [ 0 ] for i in range (l): cur_count = 1 for j in range (i + 1 , l): if ( str [i] ! = str [j]): break cur_count + = 1 # Update result if required if cur_count > count : count = cur_count res = str [i] return res # Driver code if __name__ = = "__main__" : str = "aaaabbaaccde" print (maxRepeating( str )) # This code is contributed # by ChitraNayal |
C#
// C# program to find the maximum // consecutive repeating character // in given string using System; class GFG { // function to find out the maximum // repeating character in given string static char maxRepeating( string str) { int len = str.Length; int count = 0; char res = str[0]; // Find the maximum repeating // character starting from str[i] for ( int i = 0; i < len; i++) { int cur_count = 1; for ( int j = i + 1; j < len; j++) { if (str[i] != str[j]) break ; cur_count++; } // Update result if required if (cur_count > count) { count = cur_count; res = str[i]; } } return res; } // Driver code public static void Main() { string str = "aaaabbaaccde" ; Console.Write(maxRepeating(str)); } } // This code is contributed // by ChitraNayal |
PHP
<?php //PHP program to find the maximum consecutive // repeating character in given string // function to find out the maximum repeating // character in given string function maxRepeating( $str ) { $len = strlen ( $str ); $count = 0; // Find the maximum repeating character // starting from str[i] $res = $str [0]; for ( $i = 0; $i < $len ; $i ++) { $cur_count = 1; for ( $j = $i +1; $j < $len ; $j ++) { if ( $str [ $i ] != $str [ $j ]) break ; $cur_count ++; } // Update result if required if ( $cur_count > $count ) { $count = $cur_count ; $res = $str [ $i ]; } } return $res ; } // Driver code $str = "aaaabbaaccde" ; echo maxRepeating( $str ); // This code is contributed by ajit ?> |
Javascript
<script> // Javascript program to find the maximum consecutive // repeating character in given string // function to find out the maximum repeating // character in given string function maxRepeating(str) { let len = str.length; let count = 0; // Find the maximum repeating character // starting from str[i] let res = str[0]; for (let i=0; i<len; i++) { let cur_count = 1; for (let j=i+1; j<len; j++) { if (str[i] != str[j]) break ; cur_count++; } // Update result if required if (cur_count > count) { count = cur_count; res = str[i]; } } return res; } // Driver code let str = "aaaabbaaccde" ; document.write(maxRepeating(str)); // This code is contributed by rag2127 </script> |
Output:
a
Time Complexity : O(n^2)
Space Complexity : O(1)
An efficient solution is to run only one loop. The idea is to reset the count as 1 as soon as we find a character not matching with the previous.
C++
// C++ program to find the maximum consecutive // repeating character in given string #include<bits/stdc++.h> using namespace std; // Returns the maximum repeating character in a // given string char maxRepeating(string str) { int n = str.length(); int count = 0; char res = str[0]; int cur_count = 1; // Traverse string except last character for ( int i=0; i<n; i++) { // If current character matches with next if (i < n-1 && str[i] == str[i+1]) cur_count++; // If doesn't match, update result // (if required) and reset count else { if (cur_count > count) { count = cur_count; res = str[i]; } cur_count = 1; } } return res; } // Driver code int main() { string str = "aaaabbaaccde" ; cout << maxRepeating(str); return 0; } |
Java
// Java program to find the maximum consecutive // repeating character in given string class GFG { // function to find out the maximum repeating // character in given string static char maxRepeating(String str) { int n = str.length(); int count = 0 ; char res = str.charAt( 0 ); int cur_count = 1 ; // Traverse string except last character for ( int i = 0 ; i < n; i++) { // If current character matches with next if (i < n - 1 && str.charAt(i) == str.charAt(i + 1 )) cur_count++; // If doesn't match, update result // (if required) and reset count else { if (cur_count > count) { count = cur_count; res = str.charAt(i); } cur_count = 1 ; } } return res; } // Driver code public static void main(String args[]) { String str = "aaaabbaaccde" ; System.out.println(maxRepeating(str)); } } // This code is contributed by Sudeep Mukherjee |
Python 3
# Python 3 program to find the # maximum consecutive repeating # character in given string # Returns the maximum repeating # character in a given string def maxRepeating( str ): n = len ( str ) count = 0 res = str [ 0 ] cur_count = 1 # Traverse string except # last character for i in range (n): # If current character # matches with next if (i < n - 1 and str [i] = = str [i + 1 ]): cur_count + = 1 # If doesn't match, update result # (if required) and reset count else : if cur_count > count: count = cur_count res = str [i] cur_count = 1 return res # Driver code if __name__ = = "__main__" : str = "aaaabbaaccde" print (maxRepeating( str )) # This code is contributed # by ChitraNayal |
C#
// C# program to find the maximum // consecutive repeating character // in given string using System; class GFG { // function to find out the // maximum repeating character // in given string static char maxRepeating( string str) { int n = str.Length; int count = 0; char res = str[0]; int cur_count = 1; // Traverse string except // last character for ( int i = 0; i < n; i++) { // If current character // matches with next if (i < n - 1 && str[i] == str[i + 1]) cur_count++; // If doesn't match, update result // (if required) and reset count else { if (cur_count > count) { count = cur_count; res = str[i]; } cur_count = 1; } } return res; } // Driver code public static void Main() { string str = "aaaabbaaccde" ; Console.Write(maxRepeating(str)); } } // This code is contributed // by ChitraNayal |
PHP
<?php // PHP program to find the maximum // consecutive repeating character // in given string // Returns the maximum repeating // character in a given string function maxRepeating( $str ) { $n = strlen ( $str ); $count = 0; $res = $str [0]; $cur_count = 1; // Traverse string except // last character for ( $i = 0; $i < $n ; $i ++) { // If current character // matches with next if ( $i < $n - 1 && $str [ $i ] == $str [ $i + 1]) $cur_count ++; // If doesn't match, update result // (if required) and reset count else { if ( $cur_count > $count ) { $count = $cur_count ; $res = $str [ $i ]; } $cur_count = 1; } } return $res ; } // Driver code $str = "aaaabbaaccde" ; echo maxRepeating( $str ); // This code is contributed // by ChitraNayal ?> |
Javascript
<script> // JavaScript program to find the maximum consecutive // repeating character in given string // function to find out the maximum repeating // character in given string function maxRepeating( str) { var n = str.length; var count = 0; var res = str[0]; var cur_count = 1; // Traverse string except last character for ( var i=0; i<n; i++) { // If current character matches with next if (i < n-1 && str[i] == str[i+1]) cur_count++; // If doesn't match, update result // (if required) and reset count else { if (cur_count > count) { count = cur_count; res = str[i]; } cur_count = 1; } } return res; } var str = "aaaabbaaccde" ; document.write( maxRepeating(str)); </script> |
Output:
a
Time Complexity : O(n)
Space Complexity : O(1)
This article is contributed by DANISH_RAZA . If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Please Login to comment...