Dada una string str . La tarea es encontrar todo el número posible de strings que se pueden obtener reemplazando el «$» con letras en la string dada.
Nota : los alfabetos deben colocarse de tal manera que la secuencia siempre esté alternando en vocales y consonantes, y la secuencia debe comenzar siempre con una consonante. Se supone que una string de este tipo siempre es posible, es decir, no hay necesidad de preocuparse por los caracteres que no sean «$».
Ejemplos :
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
Planteamiento: Se da que la string comenzará con una consonante. Entonces, si ‘$’ está en una posición par (considerando la indexación basada en 0), entonces debería haber una consonante, de lo contrario debería haber una vocal. Además, dado que no hay necesidad de preocuparse por los caracteres que no sean “$”, es decir, los caracteres que no sean “$” se colocan correctamente en la string manteniendo la secuencia alterna de consonantes y vocales. Entendamos el problema con un ejemplo.
str = “s$$e$”
Aquí tenemos que encontrar el número de formas de formar una string con las restricciones dadas.
- La primera aparición de $está en la segunda posición, es decir, en el primer índice, por lo que podemos usar 5 vocales.
- La segunda aparición de $está en la tercera posición, por lo que podemos usar 21 consonantes.
- La tercera aparición de $está en la quinta posición, por lo que podemos usar 21 consonantes.
Entonces, el número total de formas de formar la string anterior es = 5*21*21 = 2205
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of above approach #include <bits/stdc++.h> 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
<?php // PHP implementation of above approach // Function to find the count of strings function countStrings($s) { // Variable to store the // final result $sum = 1; // Loop iterating through string for ($i = 0; $i < strlen($s); $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 // Let the string 'str' be s$$e$ $str = "s\$\$e\$"; // Print result echo countStrings($str); // This code is contributed by Ryuga ?>
Javascript
<script> // javascript implementation of above approach // Function to find the count of strings function countStrings( s) { // Variable to store the final result let sum = 1; // Loop iterating through string for (let 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 // Let the string 'str' be s$$e$ let str = "s$$e$"; // Print result document.write(countStrings(str)); // This code is contributed by gauravrajput1 </script>
2205