检查一个字符串是否可以通过替换元音和辅音来转换为另一个字符串
给定两个字符串S1 和 S2,您只能将任何位置的字符更改为任何元音,如果它是元音或辅音,如果它是辅音。任务是检查字符串S1 是否可以更改为 S2 或 S2 是否可以更改为 S1。
例子:
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
处理方法:解决上述问题应遵循以下条件:
- 两个字符串的长度应该相等。
- 在每个索引处,S1 和 S2 的字符都应该是元音或辅音。
下面是上述方法的实现:
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
输出:
Yes
时间复杂度: O(l1),其中 l1 是给定字符串s1 的大小。
辅助空间: O(1)