Compruebe si una string se puede convertir en otra string reemplazando vocales y consonantes

 Dadas dos strings S1 y S2, solo puede cambiar un carácter en cualquier posición a cualquier vocal si es una vocal o a una consonante, si es una consonante. La tarea es verificar si una string S1 se puede cambiar a S2 o S2 se puede cambiar a S1. 
Ejemplos: 
 

Entrada: S1 = “abcgle”, S2 = “ezggli” 
Salida: Sí 
Cambiar ‘a’ por ‘e’, ​​’b’ por ‘z’, ‘c’ por ‘g’ y ‘e’ por ‘i’. 
Entrada: S1 = “abc”, S2 = “cgth” 
Salida: No

Enfoque: Se deben seguir las siguientes condiciones para resolver el problema anterior: 
 

  • La longitud de ambas cuerdas debe ser igual.
  • En cada índice, el carácter de S1 y S2 debe ser vocal o consonante.

A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ program to check if a string can be converted
// to other string by replacing vowels and consonants
#include <bits/stdc++.h>
using namespace std;
 
// Function to check if the character
// is vowel or not
bool isVowel(char c)
{
    if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
        return true;
 
    return false;
}
 
// Function that checks if a string can be
// converted to another string
bool checkPossibility(string s1, string s2)
{
    // Find length of string
    int l1 = s1.length();
    int l2 = s2.length();
 
    // If length is not same
    if (l1 != l2)
        return false;
 
    // Iterate for every character
    for (int i = 0; i < l1; i++) {
        // If both vowel
        if (isVowel(s1[i]) && isVowel(s2[i]))
            continue;
 
        // Both are consonants
        else if (!(isVowel(s1[i])) && !(isVowel(s2[i])))
            continue;
        else
            return false;
    }
    return true;
}
 
// Driver Code
int main()
{
 
    string S1 = "abcgle", S2 = "ezggli";
    if (checkPossibility(S1, S2))
        cout << "Yes";
    else
        cout << "No";
    return 0;
}

Java

// Java program to check if a string
// can be converted to other string
// by replacing vowels and consonants
class GfG
{
 
// Function to check if the character
// is vowel or not
static boolean isVowel(char c)
{
    if (c == 'a' || c == 'e' || c == 'i' ||
                    c == 'o' || c == 'u')
        return true;
 
    return false;
}
 
// Function that checks if a string can be
// converted to another string
static boolean checkPossibility(String s1, String s2)
{
    // Find length of string
    int l1 = s1.length();
    int l2 = s2.length();
 
    // If length is not same
    if (l1 != l2)
        return false;
 
    // Iterate for every character
    for (int i = 0; i < l1; i++)
    {
        // If both vowel
        if (isVowel(s1.charAt(i)) &&
            isVowel(s2.charAt(i)))
            continue;
 
        // Both are consonants
        else if (!(isVowel(s1.charAt(i))) &&
                    !(isVowel(s2.charAt(i))))
            continue;
        else
            return false;
    }
    return true;
}
 
// Driver Code
public static void main(String[] args)
{
 
    String S1 = "abcgle";
    String S2 = "ezggli";
    if (checkPossibility(S1, S2) == true)
        System.out.println("Yes");
    else
        System.out.println("No");
}
}
 
// This code is contributed by Prerna saini.

Python3

# Python3 program to check if a string can
# be converted to other string by replacing
# vowels and consonants
 
# Function to check if the character
# is vowel or not
def isVowel(c):
 
    if (c == 'a' or c == 'e' or
        c == 'i' or c == 'o' or c == 'u'):
        return True
 
    return False
 
# Function that checks if a string can
# be converted to another string
def checkPossibility(s1, s2):
 
    # Find length of string
    l1 = len(s1)
    l2 = len(s2)
 
    # If length is not same
    if (l1 != l2):
        return False
 
    # Iterate for every character
    for i in range(l1):
         
        # If both vowel
        if (isVowel(s1[i]) and isVowel(s2[i])):
            continue
 
        # Both are consonants
        elif ((isVowel(s1[i])) == False and
              (isVowel(s2[i]) == False)):
            continue
        else:
            return False
     
    return True
 
# Driver Code
S1, S2 = "abcgle", "ezggli"
if (checkPossibility(S1, S2)):
    print("Yes")
else:
    print("No")
 
# This code is contributed by Mohit Kumar

C#

// C# program to check if a string
// can be converted to other string
// by replacing vowels and consonants
using System;
 
class GfG
{
 
    // Function to check if the character
    // is vowel or not
    static bool isVowel(char c)
    {
        if (c == 'a' || c == 'e' || c == 'i' ||
                        c == 'o' || c == 'u')
            return true;
     
        return false;
    }
     
    // Function that checks if a string can be
    // converted to another string
    static bool checkPossibility(string s1, string s2)
    {
        // Find length of string
        int l1 = s1.Length ;
        int l2 = s2.Length ;
     
        // If length is not same
        if (l1 != l2)
            return false;
     
        // Iterate for every character
        for (int i = 0; i < l1; i++)
        {
            // If both vowel
            if (isVowel(s1[i]) &&
                isVowel(s2[i]))
                continue;
     
            // Both are consonants
            else if (!(isVowel(s1[i])) &&
                        !(isVowel(s2[i])))
                continue;
            else
                return false;
        }
        return true;
    }
 
    // Driver Code
    public static void Main()
    {
     
        string S1 = "abcgle";
        string S2 = "ezggli";
        if (checkPossibility(S1, S2) == true)
            Console.WriteLine("Yes");
        else
            Console.WriteLine("No");
    }
}
 
// This code is contributed by Ryuga.

Javascript

<script>
      // JavaScript program to check if a string can be converted
      // to other string by replacing vowels and consonants
 
      // Function to check if the character
      // is vowel or not
      function isVowel(c) {
        if (c === "a" || c === "e" || c === "i" || c === "o" || c === "u")
          return true;
 
        return false;
      }
 
      // Function that checks if a string can be
      // converted to another string
      function checkPossibility(s1, s2)
      {
       
        // Find length of string
        var l1 = s1.length;
        var l2 = s2.length;
 
        // If length is not same
        if (l1 !== l2) return false;
 
        // Iterate for every character
        for (var i = 0; i < l1; i++)
        {
         
          // If both vowel
          if (isVowel(s1[i]) && isVowel(s2[i])) continue;
           
          // Both are consonants
          else if (!isVowel(s1[i]) && !isVowel(s2[i])) continue;
          else return false;
        }
        return true;
      }
 
      // Driver Code
      var S1 = "abcgle",
        S2 = "ezggli";
      if (checkPossibility(S1, S2)) document.write("Yes");
      else document.write("No");
       
      // This code is contributed by rdtank.
    </script>
Producción: 

Yes

 

Complejidad de tiempo: O(n), ya que estamos usando un ciclo para atravesar n veces, donde n es el tamaño de una string dada s1.
Espacio auxiliar: O(n), ya que estamos pasando la string completa como valor al método.

Publicación traducida automáticamente

Artículo escrito por Striver 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 *