Replace every consonant sequence with its length in the given string

Given a string str consisting of lowercase characters. The task is to replace the consecutive sequence of consonants with their length.
Examples:
Input: str = “abcdeiop”
Output: a3eio1
Given string contains 2 consonant sequences “bcd” and “p” with lengths 3 and 1.
Input: str = “abecidofu”
Output: a1e1i1o1u
Approach: Make a new string that will be free from consonants. For it, we have to iterate the given string. If we find a vowel it will be added to the new string as it is. If we find a consonant then we have to find the length of the complete consonant sequence and then add its length to the new string.
Algorithm:
Step 1: Start
Step 2: create a function that returns the string value that replaces every consonant sequence with its length and takes the input of a string type.
Step 3: Initialize an empty string say “res” inside it.
Step 4: To count the length of the consonant sequence as you iterate through the string, define the integer variables I and count.
Step 5: start a while loop to traverse through the input string
Step 6: If the character is a consonant, increment the count by 1.
If the character is a vowel, add the count to the resultant string res, then add the vowel to res, and reset the count to 0.
Step 7: now after the while loop checks if there is a consonant sequence left in the string. If yes, add the count to the resultant string.
Step 8: Return the obtained string res
Step 9: End
Below is the implementation of the above approach:
C++
// C++ implementation of the approach#include <bits/stdc++.h>using namespace std;// Function to return the converted string// after replacing every consonant sequence// with its lengthstring replaceConsonants(string str){ // To store the resultant string string res = ""; int i = 0, count = 0; // Checking each character // for consonant sequence while (i < str.length()) { // Count the length of consonants sequence if (str[i] != 'a' && str[i] != 'e' && str[i] != 'i' && str[i] != 'o' && str[i] != 'u') { i++; count++; } else { // Add the length in the string if (count > 0) res += to_string(count); // Add the vowel res += str[i]; i++; count = 0; } } // Check for the last consonant sequence // in the string if (count > 0) res += to_string(count); // Return the resultant string return res;}// Driver codeint main(){ string str = "abcdeiop"; cout << replaceConsonants(str); return 0;} |
Java
// Java implementation of the approachimport java.util.*;import java.lang.*;class GFG { // Function to return the converted string // after replacing every consonant sequence // with its length static String replaceConsonants(String str) { // To store the resultant string String res = ""; int i = 0, count = 0; // Checking each character // for consonant sequence while (i < str.length()) { // Count the length of consonants sequence if (str.charAt(i) != 'a' && str.charAt(i) != 'e' && str.charAt(i) != 'i' && str.charAt(i) != 'o' && str.charAt(i) != 'u') { i++; count++; } else { // Add the length in the string if (count > 0) res += count; // Add the vowel res += str.charAt(i); i++; count = 0; } } // Check for the last consonant sequence // in the string if (count > 0) res += count; // Return the resultant string return res; } // Driver code public static void main(String[] args) { String str = "abcdeiop"; System.out.println(replaceConsonants(str)); }}// This code is contributed by Code_Mech. |
Python3
# Python3 implementation of the above approach # Function to return the converted string # after replacing every consonant sequence # with its length def replaceConsonants(string) : # To store the resultant string res = ""; i = 0; count = 0; # Checking each character # for consonant sequence while (i < len(string)) : # Count the length of consonants sequence if (string[i] != 'a' and string[i] != 'e' and string[i] != 'i' and string[i] != 'o' and string[i] != 'u') : i += 1; count += 1; else : # Add the length in the string if (count > 0) : res += str(count); # Add the vowel res += string[i]; i += 1 count = 0; # Check for the last consonant # sequence in the string if (count > 0) : res += str(count); # Return the resultant string return res; # Driver code if __name__ == "__main__" : string = "abcdeiop"; print(replaceConsonants(string)); # This code is contributed by Ryuga |
C#
using System;// c# implementation of the approachpublic class GFG { // Function to return the converted string // after replacing every consonant sequence // with its length public static string replaceConsonants(string str) { // To store the resultant string string res = ""; int i = 0, count = 0; // Checking each character // for consonant sequence while (i < str.Length) { // Count the length of consonants sequence if (str[i] != 'a' && str[i] != 'e' && str[i] != 'i' && str[i] != 'o' && str[i] != 'u') { i++; count++; } else { // Add the length in the string if (count > 0) { res += count; } // Add the vowel res += str[i]; i++; count = 0; } } // Check for the last consonant sequence // in the string if (count > 0) { res += count; } // Return the resultant string return res; } // Driver code public static void Main(string[] args) { string str = "abcdeiop"; Console.WriteLine(replaceConsonants(str)); }}// This code is contributed by Shrikant13 |
Javascript
<script> // JavaScript implementation of the approach // Function to return the converted string // after replacing every consonant sequence // with its length function replaceConsonants(str) { // To store the resultant string var res = ""; var i = 0, count = 0; // Checking each character // for consonant sequence while (i < str.length) { // Count the length of consonants sequence if ( str[i] !== "a" && str[i] !== "e" && str[i] !== "i" && str[i] !== "o" && str[i] !== "u" ) { i++; count++; } else { // Add the length in the string if (count > 0) res += count.toString(); // Add the vowel res += str[i]; i++; count = 0; } } // Check for the last consonant sequence // in the string if (count > 0) res += count.toString(); // Return the resultant string return res; } // Driver code var str = "abcdeiop"; document.write(replaceConsonants(str)); // This code is contributed by rdtank. </script> |
a3eio1
Time Complexity: O(n), where n is the length of the given string.
Auxiliary Space: O(n), where n is the length of the given string.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



