Given a string consisting of vowels and consonants. The task is to find the number of ways in which the characters of the string can be arranged such that no two vowels are adjacent to each other.
Note: Given that No. of vowels <= No. of consonants.
Input: str = "permutation" Output : 907200 Input: str = "geeksforgeeks" Output: 3175200
Consider the above example string “permutation”:
- First place all of the consonants at the alternate places like below:
-- p -- r -- m -- t -- t -- n --
Number of ways to place consonants = 6! / 2!. as appears twice and should be considered once.
- Then place the vowels at the remaining positions. We have 7 remaining positions and 5 vowels to fill these 7 places.
Therefore, number of ways to fill vowels = .
Total no. of ways = = 907200
Suppose in a string number of vowels is vowelCount and the number of consonants is consonantCount.
Total ways = (consonantCount! / duplicateConsonant!) * C(consonantCount+1 , vowelCount) * (vowelCount! / duplicateVowel!)
Below is the implementation of the above approach:
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Generate all binary permutations such that there are more or equal 1's than 0's before every point in all permutations
- Find the number of words of X vowels and Y consonants that can be formed from M vowels and N consonants
- Longest substring of vowels with no two adjacent alphabets same
- Find the player to last modify a string such that even number of consonants and no vowels are left in the string
- Generate permutations with only adjacent swaps allowed
- Count of distinct permutations of length N having no similar adjacent characters
- Modify the string such that it contains all vowels at least once
- Ways to paint stairs with two colors such that two adjacent are not yellow
- Replace '?' in a string such that no two adjacent characters are same
- Modify string by removing vowels in between two consonants
- Number of ways to arrange a word such that all vowels occur together
- Arrangement of the characters of a word such that all vowels are at odd places
- Print an N x M matrix such that each row and column has all the vowels in it
- Number of ways to arrange a word such that no vowels occur together
- Length of the longest increasing subsequence such that no two adjacent elements are coprime
- Number of permutations such that sum of elements at odd index and even index are equal
- Number of Permutations such that no Three Terms forms Increasing Subsequence
- Count of permutations such that sum of K numbers from given range is even
- Program to remove vowels from a String
- Program to count vowels in a string (Iterative and Recursive)
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.