Given a string s, print reverse of string and remove the characters from the reversed string where there are vowels in the original string.
Examples:
Input : neveropen Output : segrfseg Explanation : Reversed string is skeegrofskeeg, removing characters from indexes 1, 2, 6, 9 & 10 (0 based indexing), we get segrfseg . Input :duck Output :kud
A simple solution is to first reverse the string, then traverse the reversed string and remove vowels.
C++
#include <iostream> #include <string> using namespace std; // Function to reverse a string string reverseString(string s) { string reversed; // Iterate over the original string in reverse order for ( int i = s.length() - 1; i >= 0; i--) { // Append each character to a new string reversed += s[i]; } // Return the reversed string return reversed; } // Function to remove vowels from a string string removeVowels(string s,string reversed) { string withoutVowels; // Iterate over the string for ( int i = 0; i < s.length(); i++) { char c = s[i]; // Check if the character is a vowel in original string if (c != 'a' && c != 'e' && c != 'i' && c != 'o' && c != 'u' && c != 'A' && c != 'E' && c != 'I' && c != 'O' && c != 'U' ) { // If not, append the reversed string character to a new string withoutVowels += reversed[i]; } } // Return the string without vowels return withoutVowels; } int main() { string s = "neveropen" ; // Reverse the original string string reversed = reverseString(s); // Remove vowels from the reversed string string withoutVowels = removeVowels(s,reversed); // Print the resulting string without vowels cout << withoutVowels << endl; return 0; } // This code is contributed by Utkarsh. |
Java
public class Main { public static void main(String[] args) { String s = "neveropen" ; // Reverse the original string String reversed = reverseString(s); // Remove vowels from the reversed string String withoutVowels = removeVowels(s, reversed); // Print the resulting string without vowels System.out.println(withoutVowels); } // Function to reverse a string public static String reverseString(String s) { String reversed = "" ; // Iterate over the original string in reverse order for ( int i = s.length() - 1 ; i >= 0 ; i--) { // Append each character to a new string reversed += s.charAt(i); } // Return the reversed string return reversed; } // Function to remove vowels from a string public static String removeVowels(String s, String reversed) { String withoutVowels = "" ; // Iterate over the string for ( int i = 0 ; i < s.length(); i++) { char c = s.charAt(i); // Check if the character is a vowel in original string if (c != 'a' && c != 'e' && c != 'i' && c != 'o' && c != 'u' && c != 'A' && c != 'E' && c != 'I' && c != 'O' && c != 'U' ) { // If not, append the reversed string character to a new string withoutVowels += reversed.charAt(i); } } // Return the string without vowels return withoutVowels; } } //This Code is written by Sundaram. |
Python3
def reverseString(s): reversed_string = "" # Iterate over the original string in reverse order for i in range ( len (s) - 1 , - 1 , - 1 ): # Append each character to a new string reversed_string + = s[i] # Return the reversed string return reversed_string def removeVowels(s, reversed_string): withoutVowels = "" # Iterate over the string for i in range ( len (s)): c = s[i] # Check if the character is a vowel in original string if c not in [ 'a' , 'e' , 'i' , 'o' , 'u' , 'A' , 'E' , 'I' , 'O' , 'U' ]: # If not, append the reversed string character to a new string withoutVowels + = reversed_string[i] # Return the string without vowels return withoutVowels if __name__ = = "__main__" : s = "neveropen" # Reverse the original string reversed_string = reverseString(s) # Remove vowels from the reversed string withoutVowels = removeVowels(s, reversed_string) # Print the resulting string without vowels print (withoutVowels) |
C#
using System; namespace ConsoleApp1 { class Program { // Function to reverse a string static string ReverseString( string s) { string reversed = "" ; // Iterate over the original string in reverse order for ( int i = s.Length - 1; i >= 0; i--) { // Append each character to a new string reversed += s[i]; } // Return the reversed string return reversed; } // Function to remove vowels from a string static string RemoveVowels( string s, string reversed) { string withoutVowels = "" ; // Iterate over the string for ( int i = 0; i < s.Length; i++) { char c = s[i]; // Check if the character is a vowel in original // string if (c != 'a' && c != 'e' && c != 'i' && c != 'o' && c != 'u' && c != 'A' && c != 'E' && c != 'I' && c != 'O' && c != 'U' ) { // If not, append the reversed string // character to a new string withoutVowels += reversed[i]; } } // Return the string without vowels return withoutVowels; } static void Main( string [] args) { string s = "neveropen" ; // Reverse the original string string reversed = ReverseString(s); // Remove vowels from the reversed string string withoutVowels = RemoveVowels(s, reversed); // Print the resulting string without vowels Console.WriteLine(withoutVowels); } } } // This code is contributed by user_dtewbxkn77n |
Javascript
function reverseString(s) { let reversed = "" ; // Iterate over the original string in reverse order for (let i = s.length - 1; i >= 0; i--) { // Append each character to a new string reversed += s[i]; } // Return the reversed string return reversed; } function removeVowels(s, reversed) { let withoutVowels = "" ; // Iterate over the string for (let i = 0; i < s.length; i++) { let c = s[i]; // Check if the character is a vowel in original string if (c != 'a' && c != 'e' && c != 'i' && c != 'o' && c != 'u' && c != 'A' && c != 'E' && c != 'I' && c != 'O' && c != 'U' ) { // If not, append the reversed string character to a new string withoutVowels += reversed[i]; } } // Return the string without vowels return withoutVowels; } let s = "neveropen" ; // Reverse the original string let reversed = reverseString(s); // Remove vowels from the reversed string let withoutVowels = removeVowels(s, reversed); // Print the resulting string without vowels console.log(withoutVowels); |
segrfseg
Time complexity : O(n)
Auxiliary Space : O(n)
An efficient solution is to do both tasks in one traversal.
Create an empty string r and traverse the original string s and assign the value to the string r. Check whether, at that index, the original string contains a consonant or not. If yes then print the element at that index from string r.
Basic implementation of the above approach :
C++
// CPP Program for removing characters // from reversed string where vowels are // present in original string #include <bits/stdc++.h> using namespace std; // Function for replacing the string void replaceOriginal(string s, int n) { // initialize a string of length n string r(n, ' ' ); // Traverse through all characters of string for ( int i = 0; i < n; i++) { // assign the value to string r // from last index of string s r[i] = s[n - 1 - i]; // if s[i] is a consonant then // print r[i] if (s[i] != 'a' && s[i] != 'e' && s[i] != 'i' && s[i] != 'o' && s[i] != 'u' ) { cout << r[i]; } } cout << endl; } // Driver function int main() { string s = "neveropen" ; int n = s.length(); replaceOriginal(s, n); return 0; } |
Java
// Java Program for removing characters // from reversed string where vowels are // present in original string class GFG { // Function for replacing the string static void replaceOriginal(String s, int n) { // initialize a string of length n char r[] = new char [n]; // Traverse through all characters of string for ( int i = 0 ; i < n; i++) { // assign the value to string r // from last index of string s r[i] = s.charAt(n - 1 - i); // if s[i] is a consonant then // print r[i] if (s.charAt(i) != 'a' && s.charAt(i) != 'e' && s.charAt(i) != 'i' && s.charAt(i) != 'o' && s.charAt(i) != 'u' ) { System.out.print(r[i]); } } System.out.println( "" ); } // Driver function public static void main(String[] args) { String s = "neveropen" ; int n = s.length(); replaceOriginal(s, n); } } // This code is contributed by princiRaj1992 |
Python3
# Python3 Program for removing characters # from reversed string where vowels are # present in original string # Function for replacing the string def replaceOriginal(s, n): # initialize a string of length n r = [ ' ' ] * n # Traverse through all characters of string for i in range (n): # assign the value to string r # from last index of string s r[i] = s[n - 1 - i] # if s[i] is a consonant then # print r[i] if (s[i] ! = 'a' and s[i] ! = 'e' and s[i] ! = 'i' and s[i] ! = 'o' and s[i] ! = 'u' ): print (r[i], end = "") print () # Driver Code if __name__ = = "__main__" : s = "neveropen" n = len (s) replaceOriginal(s, n) # This code is contributed by # sanjeev2552 |
C#
// C# Program for removing characters // from reversed string where vowels are // present in original string using System; class GFG { // Function for replacing the string static void replaceOriginal(String s, int n) { // initialize a string of length n char []r = new char [n]; // Traverse through all characters of string for ( int i = 0; i < n; i++) { // assign the value to string r // from last index of string s r[i] = s[n - 1 - i]; // if s[i] is a consonant then // print r[i] if (s[i] != 'a' && s[i] != 'e' && s[i] != 'i' && s[i] != 'o' && s[i] != 'u' ) { Console.Write(r[i]); } } Console.WriteLine( "" ); } // Driver code public static void Main(String[] args) { String s = "neveropen" ; int n = s.Length; replaceOriginal(s, n); } } // This code is contributed by Rajput-JI |
Javascript
<script> // JavaScript Program for removing characters // from reversed string where vowels are // present in original string // Function for replacing the string function replaceOriginal(s, n) { // initialize a string of length n var r = new Array(n); // Traverse through all characters of string for ( var i = 0; i < n; i++) { // assign the value to string r // from last index of string s r[i] = s.charAt(n - 1 - i); // if s[i] is a consonant then // print r[i] if (s.charAt(i) != 'a' && s.charAt(i) != 'e' && s.charAt(i) != 'i' && s.charAt(i) != 'o' && s.charAt(i) != 'u' ) { document.write(r[i]); } } document.write( "" ); } // Driver function var s = "neveropen" ; var n = s.length; replaceOriginal(s, n); // This code is contributed by shivanisinghss2110 </script> |
segrfseg
Complexity Analysis:
- Time complexity : O(n)
- Auxiliary Space : O(n)
Approach:
In this approach, we will iterate through each character of the string, and if the character is not a vowel, we will append it to a new string. Finally, we will reverse the new string and return it as the output.
Steps:
- Create an empty string called “new_string”.
- Iterate through each character of the input string.
- If the character is not a vowel, append it to “new_string”.
- Reverse the “new_string” using string slicing.
- Return the reversed string as the output.
Python3
def reverse_string_without_vowels(input_string): vowels = "AEIOUaeiou" new_string = "" for char in input_string: if char not in vowels: new_string + = char return new_string[:: - 1 ] # Test the function input_string = "neveropen" output_string = reverse_string_without_vowels(input_string) print (output_string) |
Javascript
function reverseStringWithoutVowels(inputString) { const vowels = "AEIOUaeiou" ; let newString = "" ; for (let i = inputString.length - 1; i >= 0; i--) { if (!vowels.includes(inputString[i])) { newString += inputString[i]; } } return newString; } // Test the function const inputString = "neveropen" ; const outputString = reverseStringWithoutVowels(inputString); console.log(outputString); |
skgrfskg
Time Complexity: The time complexity of this approach is O(n), where n is the length of the input string.
Auxiliary Space: The auxiliary space used in this approach is O(n), where n is the length of the input string.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!