Last Updated: 18 May, 2022

Count vowels, consonants, and spaces

Easy
Asked in companies
Goldman SachsSamsungKaleidofin

Problem statement

Given a string, write a program to count the number of vowels, consonants, and spaces in that string.

EXAMPLE :
Input: ‘N’= 25, ‘s’ =”Take u forward is Awesome”
Output: 10 11 4
Input Format :
The first line will contain the integer 'T', the number of test cases.

Each test case consists of two lines.

The first line of input contains one integer, 'N' the length of the given string.

Followed by a line containing the given string. All the characters in the input are lowercase or uppercase Latin letters or spaces.
Output format :
For each test case, print three space-delimited integers denoting the number of vowels, consonants, and spaces in the given string respectively.
Note :
You don't need to print anything. It has already been taken care of. Just implement the given function.
Constraints :
1 <= 'T' <= 10
1 <= 'N' <= 10^5
It is guaranteed that sum of ‘N’ over all test cases is <= 10^5
Time Limit: 1 sec

Approaches

01 Approach

The idea is to iterate through the given string, if we encounter a vowel we increment the count of vowels, else if we encounter a space we increment the count of spaces else we increment the count of consonants.

The vowels are {a, e, i, o, u, A, E, I, O, U}.

So to make the implementation easier we will convert our whole string into lowercase and then we just have to check if the current character is one of {a, e, i, o, u} or not.
 

Algorithm:
 

// The function will convert the provided string into lowercase.

void toLowercase(s[], n)

  • Run a loop from 0 to ‘n-1’ with a variable ‘i’
    • If ‘s[i]>=A and s[i]<=Z’
      • Assign ‘s[i]’ value of ‘a - A + s[i]’

Bool isVowel(ch)

  • If ‘ch==a or ch==e or ch==i or ch==o or ch==u’ return ‘true’
  • Else return ‘false’

Int[] countVowelsConsonantsSpaces(s[], n)

  • Initialize array ‘ans’ of size three with initial values as zero.
  • Call ‘toLowercase(s, n)’.
  • Run a loop from 0 to ‘n-1’ with a variable ‘i’
    • If ‘isVowel(s[i])’ Increment count of ‘ans[0]’ by one.
    • Else if ‘s[i] == space’ Increment count of ‘ans[2]’ by one.
    • Else Increment count of ‘ans[1]’ by one.
  • Return ‘ans’