Open In App

First X vowels from a string

Last Updated : 12 Sep, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Given a string str and an integer X, the task is to find and print the first X vowels from str. If the total vowels in str is < X then print -1.

Examples:  

Input: str = “GeeksForGeeks”, X = 3 
Output: eeo 
‘e’, ‘e’ and ‘o’ are the first three vowels in the given string.

Input: str = “softcopy”, X = 5 
Output: -1 
The total vowel count is 2 i.e ‘o’ and ‘o’ 

Approach: Traverse the string character by character and check if the current character is a vowel. If the current character is a vowel, then concatenate it to the resultant string, result. If at any point the length of the resultant string becomes X then print the string result else print -1 in the end.

Below is the implementation of the above approach: 

C++




// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to check if a character is vowel
bool isVowel(char c)
{
    c = tolower(c);
    if (c == 'a' || c == 'e' || c == 'i'
        || c == 'o' || c == 'u')
        return true;
    return false;
}
 
// Function to return first X vowels
string firstXvowels(string s, int x)
{
    // String to store first X vowels
    string result = "";
    for (int i = 0; i < s.length(); i++) {
 
        // If s[i] is a vowel then
        // append it to the result
        if (isVowel(s[i]))
            result += s[i];
 
        // If the desired length is reached
        if (result.length() == x) {
            return result;
        }
    }
 
    // If total vowels are < X
    return "-1";
}
 
// Driver code
int main()
{
    string str = "GeeksForGeeks";
    int x = 3;
 
    cout << firstXvowels(str, x);
 
    return 0;
}


Java




// Java implementation of the approach
 
public class GFG{
     
    // Function to check if a character is vowel
    static boolean isVowel(char c)
    {
        c = Character.toLowerCase(c) ;
        if (c == 'a' || c == 'e' || c == 'i'
            || c == 'o' || c == 'u')
            return true;
        return false;
    }
     
    // Function to return first X vowels
    static String firstXvowels(String s, int x)
    {
        // String to store first X vowels
        String result = "";
        for (int i = 0; i < s.length(); i++) {
     
            // If s[i] is a vowel then
            // append it to the result
            if (isVowel(s.charAt(i)))
                result += s.charAt(i);
     
            // If the desired length is reached
            if (result.length() == x) {
                return result;
            }
        }
     
        // If total vowels are < X
        return "-1";
    }
     
    // Driver code
    public static void main(String []args)
    {
        String str = "GeeksForGeeks";
        int x = 3;
     
        System.out.println(firstXvowels(str, x)) ;
    }
    // This code is contributed by Ryuga
    }


Python3




# Python 3 implementation of the approach
 
# Function to check if a character is vowel
def isVowel(c):
    c = c.lower()
    if (c == 'a' or c == 'e' or
        c == 'i' or c == 'o' or c == 'u'):
        return True
    return False
 
# Function to return first X vowels
def firstXvowels(s, x):
     
    # String to store first X vowels
    result = ""
    for i in range(0, len(s), 1):
         
        # If s[i] is a vowel then
        # append it to the result
        if (isVowel(s[i])):
            result += s[i]
 
        # If the desired length is reached
        if (len(result) == x):
            return result
     
    # If total vowels are < X
    return "-1"
 
# Driver code
if __name__ == '__main__':
    str = "GeeksForGeeks"
    x = 3
 
    print(firstXvowels(str, x))
 
# This code is implemented by
# Surendra_Gangwar


C#




// C# implementation of the approach
using System;
 
class GFG
{
 
// Function to check if a
// character is vowel
static bool isVowel(char c)
{
    c = Char.ToLower(c) ;
    if (c == 'a' || c == 'e' ||
        c == 'i' || c == 'o' ||
        c == 'u')
        return true;
    return false;
}
 
// Function to return first X vowels
static string firstXvowels(string s, int x)
{
    // String to store first X vowels
    string result = "";
    for (int i = 0; i < s.Length; i++)
    {
 
        // If s[i] is a vowel then
        // append it to the result
        if (isVowel(s[i]))
            result += s[i];
 
        // If the desired length is reached
        if (result.Length == x)
        {
            return result;
        }
    }
 
    // If total vowels are < X
    return "-1";
}
 
// Driver code
public static void Main()
{
    string str = "GeeksForGeeks";
    int x = 3;
 
    Console.WriteLine(firstXvowels(str, x)) ;
}
}
 
// This code is contributed
// by Akanksha Rai


PHP




<?php
// PHP implementation of the approach
 
// Function to check if a character is vowel
function isVowel($c)
{
    $c = strtolower($c);
    if ($c == 'a' || $c == 'e' ||
        $c == 'i' || $c == 'o' || $c == 'u')
        return true;
    return false;
}
 
// Function to return first X vowels
function firstXvowels($s, $x)
{
    // String to store first X vowels
    $result = "";
    for ($i = 0; $i < strlen($s); $i++)
    {
 
        // If s[i] is a vowel then
        // append it to the result
        if (isVowel($s[$i]))
            $result .= $s[$i];
 
        // If the desired length is reached
        if (strlen($result) == $x)
        {
            return $result;
        }
         
    }
 
    // If total vowels are < X
    return "-1";
}
 
// Driver code
$str = "GeeksForGeeks";
$x = 3;
 
echo firstXvowels($str, $x);
 
// This code is contributed
// by princiraj1992
?>


Javascript




<script>
 
// Javascript implementation of the approach
 
// Function to check if a character is vowel
function isVowel(c)
{
    c = (c.toLowerCase());
    if (c == 'a' || c == 'e' || c == 'i'
        || c == 'o' || c == 'u')
        return true;
    return false;
}
 
// Function to return first X vowels
function firstXvowels(s, x)
{
    // String to store first X vowels
    var result = "";
    for (var i = 0; i < s.length; i++) {
 
        // If s[i] is a vowel then
        // append it to the result
        if (isVowel(s[i]))
            result += s[i];
 
        // If the desired length is reached
        if (result.length == x) {
            return result;
        }
    }
 
    // If total vowels are < X
    return "-1";
}
 
// Driver code
var str = "GeeksForGeeks";
var x = 3;
document.write( firstXvowels(str, x));
 
 
</script>


Output

eeo

Complexity Analysis:

  • Time Complexity: O(n) Here, n is the length of the string.
  • Auxiliary Space: O(x) Where x is the no of vowels in the string


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads