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

• Difficulty Level : Medium
• Last Updated : 16 Jun, 2022

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 ``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

 ``

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.

My Personal Notes arrow_drop_up