Open In App

Print reverse string after removing vowels

Last Updated : 06 Dec, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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 : geeksforgeeks
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 = "geeksforgeeks";
    // 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 = "geeksforgeeks";
        // 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 = "geeksforgeeks"
    # 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 = "geeksforgeeks";
        // 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 = "geeksforgeeks";
 
// 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);


Output

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 = "geeksforgeeks";
    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 = "geeksforgeeks";
        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 = "geeksforgeeks"
    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 = "geeksforgeeks";
        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 = "geeksforgeeks";
var n = s.length;
replaceOriginal(s, n);
 
// This code is contributed by shivanisinghss2110
 
</script>


Output

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:

  1. Create an empty string called “new_string”.
  2. Iterate through each character of the input string.
  3. If the character is not a vowel, append it to “new_string”.
  4. Reverse the “new_string” using string slicing.
  5. Return the reversed string as the output.

C++




#include <iostream>
#include <string>
#include<bits/stdc++.h>
 
// Function to reverse a string without vowels
std::string reverseStringWithoutVowels(const std::string& inputString) {
    // Define vowels
    std::string vowels = "AEIOUaeiou";
     
    // Initialize an empty string to store the result
    std::string newString = "";
     
    // Iterate through each character in the input string
    for (char ch : inputString) {
        // Check if the character is not a vowel
        if (vowels.find(ch) == std::string::npos) {
            // Append the character to the new string
            newString += ch;
        }
    }
 
    // Reverse the new string
    std::reverse(newString.begin(), newString.end());
 
    // Return the reversed string without vowels
    return newString;
}
 
int main() {
    // Test the function
    std::string inputString = "geeksforgeeks";
    std::string outputString = reverseStringWithoutVowels(inputString);
    std::cout << outputString << std::endl;
 
    return 0;
}
// This code is contributed by shivamgupta0987654321


Java




import java.util.Scanner;
 
public class ReverseStringWithoutVowels {
    // Function to reverse a string without vowels
    static String reverseStringWithoutVowels(String inputString) {
        // Define vowels
        String vowels = "AEIOUaeiou";
 
        // Initialize a StringBuilder to store the result
        StringBuilder newString = new StringBuilder();
 
        // Iterate through each character in the input string
        for (char ch : inputString.toCharArray()) {
            // Check if the character is not a vowel
            if (vowels.indexOf(ch) == -1) {
                // Append the character to the StringBuilder
                newString.append(ch);
            }
        }
 
        // Reverse the StringBuilder
        newString.reverse();
 
        // Return the reversed string without vowels
        return newString.toString();
    }
 
    public static void main(String[] args) {
        // Test the function
        String inputString = "geeksforgeeks";
        String outputString = reverseStringWithoutVowels(inputString);
        System.out.println(outputString);
    }
}


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 = "geeksforgeeks"
output_string = reverse_string_without_vowels(input_string)
print(output_string)


C#




using System;
 
class Program
{
    // Function to reverse a string after removing vowels
    static string ReverseStringWithoutVowels(string inputString)
    {
        // Define a string containing all the vowels in uppercase and lowercase
        string vowels = "AEIOUaeiou";
        // Initialize a string to store the characters without vowels
        string newString = "";
 
        // Iterate through each character in the input string
        foreach (char c in inputString)
        {
            // Check if the character is not a vowel
            if (vowels.IndexOf(c) == -1)
            {
                // If it's not a vowel, add it to the new string
                newString += c;
            }
        }
 
        // Convert the new string to a character array
        char[] charArray = newString.ToCharArray();
        // Reverse the character array
        Array.Reverse(charArray);
        // Convert the reversed character array back to a string
        return new string(charArray);
    }
 
    static void Main()
    {
        // Test the ReverseStringWithoutVowels function
        string inputString = "geeksforgeeks";
        string outputString = ReverseStringWithoutVowels(inputString);
        // Print the reversed string without vowels
        Console.WriteLine(outputString);
    }
}


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 = "geeksforgeeks";
const outputString = reverseStringWithoutVowels(inputString);
console.log(outputString);


Output

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. 



Similar Reads

Print string after removing all (“10” or “01”) from the binary string
Given a binary string str consisting of only 0's and 1's, the task is to print the string after removing the occurrences of "10" and "01" from the string one by one. Print -1 if the string becomes null. Examples: Input: str = "101100" Output: -1 Explanation: In the first step, "10" at index 0 and 1 is removed from the string. 101100 -&gt; 1100 In t
9 min read
Find the number of words of X vowels and Y consonants that can be formed from M vowels and N consonants
Given four integers X, Y, M and N. The task is to find the number of ways to form a word by choosing X number of vowels and Y number of consonants from total numbers of M vowels and N consonants.Examples: Input : X = 2, Y = 2, M = 3, N = 3 Output : 216 The total number of ways of choosing 2 vowels from a total number of 3 vowels is [Tex]3\choose2 [
6 min read
Modify string by removing vowels in between two consonants
Given a string S, comprising of only lowercase English alphabets, the task is to update the string by eliminating such vowels from the string that occur between two consonants. Examples: Input: bab Output: bbHere the letter 'a' is a vowel and is between two immediate consonants. Thus, it is removed from the string, and the resultant string becomes
10 min read
Sort array of strings after sorting each string after removing characters whose frequencies are not a powers of 2
Given an array arr[] consisting of N strings, the task is to sort the array in ascending order after modifying each string by removing all characters that are not perfect power of 2 and then sort the modified string in decreasing order. Examples: Input: arr[] = {"aaacbb", "geeks", "aaa"}Output: cbb skgeeExplanation:Following are the modified string
10 min read
Reverse vowels in a given string
Given a string, your task is to reverse only the vowels of string. Examples: Input : hello Output : holle Input : hello world Output : hollo werldRecommended PracticeReversing the vowelsTry It! One simple solution is to store all the vowels while scanning the string and placing the vowels in the reverse order in another iteration of string. Impleme
8 min read
Minimum swaps required to move all vowels occurs after consonants in a given string
Given a string S, the task is to count the number of positions by which the vowels have to be moved such that all the consonants are placed at the front and all the vowels at the end. The order of consonants and vowels in the new string must be same. Examples: Input: S = "abcdefghi"Output: 9Explanation:The consonants present in the string are b, c,
10 min read
Return a Palindromic String after removing minimum length Prefix from given String
Given a string B, the task is to find the minimum length prefix of the string which, when removed and added to the end of the string, will make the string a palindrome. Return the palindromic string. If no such string exists, we need to determine that. Examples: Input: "aabb"Output: "abba"Explanation: We can remove the prefix "a" from the string "a
5 min read
Print all Substrings of a String that has equal number of vowels and consonants
Given a string S, the task is to print all the substrings of a string that has an equal number of vowels and consonants. Examples: Input: "geeks"Output: "ge", "geek", "eeks", "ek" Input: "coding"Output: "co", "codi", "od", "odin", "di", "in" Naive Approach: The basic approach to solve this problem is to generate all the substrings and then for each
13 min read
Balance a string after removing extra brackets
Given a string of characters with opening and closing brackets. The task is to remove extra brackets from string and balance it. Examples: Input: str = "gau)ra)v(ku(mar(rajput))" Output: gaurav(ku(mar(rajput))) Input: str = "1+5)+5+)6+(5+9)*9" Output: 1+5+5+6+(5+9)*9 Approach: Start traversing from left to right.Check if the element at current inde
6 min read
Find the resultant String after replacing X with Y and removing Z
Given a string str, the task is to replace all occurrences of the given X with given Y and also remove any occurrences of the given Z if present in it with no extra space Examples: Input: str = "batman", X = 'a', Y = 'd', Z = 'b' Output: ntdmdInput: str = "abba", X = 'a', Y = 'd', Z = 'b' Output: dd Recommended: Please try your approach on {IDE} fi
7 min read