# Count strings with consonants and vowels at alternate position

Given a string str. The task is to find all possible number of strings that can be obtained by replacing the “\$” with alphabets in the given string.

Note: Alphabets should be placed in such a way that the string is always alternating in vowels and consonants, and the string must always start with a consonant. It is assumed that such a string is always possible, i.e. there is no need to care about the characters other than “\$”.

Examples:

```Input: str = "y\$s"
Output: 5
\$ can be replaced with any of the 5 vowels.
So, there can be 5 strings.

Input: str = "s\$\$e\$"
Output: 2205
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: It is given that the string will start with a consonant. So, if ‘\$’ is at even position(considering 0-based indexing) then there should be a consonant else there should be a vowel. Also, given that there is no need to care about the characters other than “\$”, i.e., characters other than “\$” are placed correctly in the string maintaining the alternating consonant and vowel sequence. Let us understand the problem with an example.

str = “s\$\$e\$”
Here we have to find the number of ways to form a string with given constraints.

• First occurrence of \$ is at 2nd position i.e. 1st index, so we can use 5 vowels.
• Second occurrence of \$ is at 3rd position, so we can use 21 consonants.
• Third occurrence of \$ is at 5th position, so we can use 21 consonants.

So, total number of ways to form above string is = 5*21*21 = 2205

Below is the implementation of the above approach:

## C++

 `// C++ implementation of above approach ` `#include ` ` `  `using` `namespace` `std; ` ` `  `// Function to find the count of strings ` `int` `countStrings(string s) ` `{ ` `    ``// Variable to store the final result ` `    ``long` `sum = 1; ` ` `  `    ``// Loop iterating through string ` `    ``for` `(``int` `i = 0; i < s.size(); i++) { ` ` `  `        ``// If '\$' is present at the even ` `        ``// position in the string ` `        ``if` `(i % 2 == 0 && s[i] == ``'\$'``) ` ` `  `            ``//'sum' is multiplied by 21 ` `            ``sum *= 21; ` ` `  `        ``// If '\$' is present at the odd ` `        ``// position in the string ` `        ``else` `if` `(s[i] == ``'\$'``) ` ` `  `            ``//'sum' is multiplied by 5 ` `            ``sum *= 5; ` `    ``} ` ` `  `    ``return` `sum; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``// Let the string 'str' be s\$\$e\$ ` `    ``string str = ``"s\$\$e\$"``; ` ` `  `    ``// Print result ` `    ``cout << countStrings(str) << endl; ` `    ``return` `0; ` `} `

## Java

 `// Java implementation of above approach ` ` `  `import` `java.util.*; ` `import` `java.lang.*; ` `import` `java.io.*; ` ` `  `class` `GFG{ ` ` `  `// Function to find the count of strings ` `static` `int` `countStrings(String s) ` `{ ` `    ``// Variable to store the final result ` `    ``int` `sum = ``1``; ` `  `  `    ``// Loop iterating through string ` `    ``for` `(``int` `i = ``0``; i < s.length(); i++) { ` `  `  `        ``// If '\$' is present at the even ` `        ``// position in the string ` `        ``if` `(i % ``2` `== ``0` `&& s.charAt(i) == ``'\$'``) ` `  `  `            ``//'sum' is multiplied by 21 ` `            ``sum *= ``21``; ` `  `  `        ``// If '\$' is present at the odd ` `        ``// position in the string ` `        ``else` `if` `(s.charAt(i) == ``'\$'``) ` `  `  `            ``//'sum' is multiplied by 5 ` `            ``sum *= ``5``; ` `    ``} ` `  `  `    ``return` `sum; ` `} ` `  `  `// Driver code ` `public` `static` `void` `main(String args[]) ` `{ ` `    ``// Let the string 'str' be s\$\$e\$ ` `    ``String str = ``"s\$\$e\$"``; ` `  `  `    ``// Print result ` `    ``System.out.println(countStrings(str)); ` `} ` `} `

## Python 3

 `# Python 3 implementation of above approach ` ` `  `# Function to find the count of strings ` `def` `countStrings(s): ` `     `  `    ``# Variable to store the final result ` `    ``sum` `=` `1` ` `  `    ``# Loop iterating through string ` `    ``for` `i ``in` `range``(``len``(s)): ` ` `  `        ``# If '\$' is present at the even ` `        ``# position in the string ` `        ``if` `(i ``%` `2` `=``=` `0` `and` `s[i] ``=``=` `'\$'``): ` ` `  `            ``#'sum' is multiplied by 21 ` `            ``sum` `*``=` `21` ` `  `        ``# If '\$' is present at the odd ` `        ``# position in the string ` `        ``elif``(s[i] ``=``=` `'\$'``): ` ` `  `            ``# 'sum' is multiplied by 5 ` `            ``sum` `*``=` `5` ` `  `    ``return` `sum` ` `  `# Driver code ` `if` `__name__ ``=``=` `"__main__"``: ` `     `  `    ``# Let the string 'str' be s\$\$e\$ ` `    ``str` `=` `"s\$\$e\$"` ` `  `    ``# Print result ` `    ``print``(countStrings(``str``)) ` `     `  `# this code is contributed by ChitraNayal `

## C#

 `// C# implementation of above approach ` ` `  `using` `System; ` ` `  `class` `GFG{ ` `  `  `// Function to find the count of strings ` `static` `int` `countStrings(String s) ` `{ ` `    ``// Variable to store the final result ` `    ``int` `sum = 1; ` `   `  `    ``// Loop iterating through string ` `    ``for` `(``int` `i = 0; i < s.Length; i++) { ` `   `  `        ``// If '\$' is present at the even ` `        ``// position in the string ` `        ``if` `(i % 2 == 0 && s[i] == ``'\$'``) ` `   `  `            ``//'sum' is multiplied by 21 ` `            ``sum *= 21; ` `   `  `        ``// If '\$' is present at the odd ` `        ``// position in the string ` `        ``else` `if` `(s[i] == ``'\$'``) ` `   `  `            ``//'sum' is multiplied by 5 ` `            ``sum *= 5; ` `    ``} ` `   `  `    ``return` `sum; ` `} ` `   `  `// Driver code ` `public` `static` `void` `Main() ` `{ ` `    ``// Let the string 'str' be s\$\$e\$ ` `    ``String str = ``"s\$\$e\$"``; ` `   `  `    ``// Print result ` `    ``Console.WriteLine(countStrings(str)); ` `} ` `} `

## PHP

 ` `

Output:

```2205
```

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.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.