Open In App

Replace every consonant sequence with its length in the given string

Improve
Improve
Like Article
Like
Save
Share
Report

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 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




<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>


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.



Last Updated : 27 Feb, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads