Contar strings con consonantes y vocales en posición alterna

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>
Producción: 

2205

 

Publicación traducida automáticamente

Artículo escrito por ash264 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *