# 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 ``using` `namespace` `std;` `// Function to return the converted string``// after replacing every consonant sequence``// with its length``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 += 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 code``int` `main()``{``    ``string str = ``"abcdeiop"``;``    ``cout << replaceConsonants(str);` `    ``return` `0;``}`

## Java

 `// Java implementation of the approach``import` `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 approach` `public` `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

 ``

Output:
`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.

Previous
Next