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