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. 



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads