Thursday, January 30, 2025
Google search engine
HomeData Modelling & AICheck if a string can be converted to another string by...

Check if a string can be converted to another string by replacing vowels and consonants

 Given two strings S1 and S2, you are allowed only to change a character at any position to any vowel if it is a vowel or to a consonant, if it is a consonant. The task is to check if a string S1 can be changed to S2 or S2 can be changed to S1. 
Examples: 
 

Input: S1 = “abcgle”, S2 = “ezggli” 
Output: Yes 
Change ‘a’ to ‘e’, ‘b’ to ‘z’, ‘c’ to ‘g’ and ‘e’ to ‘i’. 
Input: S1 = “abc”, S2 = “cgth” 
Output: No

Approach: The following conditions should be followed to solve the above problem: 
 

  • The length of both the string should be equal.
  • At every index, the character of S1 and S2 should be both vowel or consonant.

Below is the implementation of the above approach: 
 

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>


Output: 

Yes

 

Time Complexity: O(n), as we are using a loop to traverse n times, where n is the size of a given string s1.
Auxiliary Space: O(n), as we are passing the whole string as a value to the method.

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

RELATED ARTICLES

Most Popular

Recent Comments