Wednesday, July 3, 2024
HomeData ModellingData Structure & AlgorithmPrint reverse string after removing vowels

Print reverse string after removing vowels

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);


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 = "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>


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.

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);


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. 

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

Shaida Kate Naidoo
am passionate about learning the latest technologies available to developers in either a Front End or Back End capacity. I enjoy creating applications that are well designed and responsive, in addition to being user friendly. I thrive in fast paced environments. With a diverse educational and work experience background, I excel at collaborating with teams both local and international. A versatile developer with interests in Software Development and Software Engineering. I consider myself to be adaptable and a self motivated learner. I am interested in new programming technologies, and continuous self improvement.
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments