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 which will be free from consonants. For it, we have to iterate the given string. If we find vowel it will be added to the new string as it is. If we find consonant then we have to find the length of complete consonant sequence and then add its length to the new string.

Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Output:

a3eio1


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.





Article Tags :
Practice Tags :


1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.