📌  相关文章
📜  通过交换连续元音或辅音来修改字符串

📅  最后修改于: 2022-05-13 01:57:08.394000             🧑  作者: Mango

通过交换连续元音或辅音来修改字符串

给定一个字符串str 。任务是通过交换两个相邻字符来修改字符串,如果它们都是元音或它们都是辅音。
例子:

方法:

  • 遍历字符中的字符串。
  • 考虑当前字符和下一个字符。
  • 如果两个字符都是辅音或两个字符都是元音。
  • 然后交换字符。
  • 否则继续该过程直到字符串结束。

下面是上述方法的实现:

C++
// C++ implementation of the above approach
#include 
using namespace std;
 
// Function to check if a character is a vowel
bool isVowel(char c)
{
    c = tolower(c);
    if (c == 'a' || c == 'e' || c == 'i'
                 || c == 'o' || c == 'u')
        return true;
    return false;
}
 
// Function to swap two consecutively
// repeated vowels or consonants
string swapRepeated(string str)
{
    // Traverse through the length of the string
    for (int i = 0; i < str.length() - 1; i++) {
 
        // Check if the two consecutive characters
        // are vowels or consonants
        if ((isVowel(str[i]) && isVowel(str[i + 1]))
            || (!isVowel(str[i]) && !isVowel(str[i + 1])))
 
            // swap the two characters
            swap(str[i], str[i + 1]);
    }
 
    return str;
}
 
// Driver code
int main()
{
    string str = "geeksforgeeks";
 
    cout << swapRepeated(str);
    return 0;
}


Java
// Java implementation of the above approach
class GFG
{
 
    // Function to check if a
    // character is a vowel
    static boolean isVowel(char c)
    {
        c = Character.toLowerCase(c);
        if (c == 'a' || c == 'e' || c == 'i'
                    || c == 'o' || c == 'u')
        {
            return true;
        }
        return false;
    }
 
    // Function to swap two consecutively
    // repeated vowels or consonants
    static String swapRepeated(char str[])
    {
         
        // Traverse through the
        // length of the string
        for (int i = 0; i < str.length - 1; i++)
        {
            char c = 0;
             
            // Check if the two consecutive characters
            // are vowels or consonants
            if ((isVowel(str[i]) && isVowel(str[i + 1]))
                || (!isVowel(str[i]) && !isVowel(str[i + 1])))
            {
                 
                // swap the two characters
                c = str[i];
                str[i] = str[i + 1];
                str[i + 1] = c;
            }
        }
        return String.valueOf(str);
    }
 
    // Driver code
    public static void main(String[] args)
    {
        String str = "geeksforgeeks";
        System.out.println(swapRepeated(str.toCharArray()));
    }
}
 
// This code is contributed by 29AjayKumar


Python 3
# Python3 implementation of the above approach
 
# Function to check if a character is a vowel
def isVowel(c) :
    c = c.lower();
    if (c == 'a' or c == 'e' or c == 'i'
                 or c == 'o' or c == 'u') :
        return True;
    return False;
 
# Function to swap two consecutively
# repeated vowels or consonants
def swapRepeated(string) :
     
    # Traverse through the length of the string
    for i in range(len(string) - 1) :
 
        # Check if the two consecutive characters
        # are vowels or consonants
        if ((isVowel(string[i]) and isVowel(string[i + 1])) or
        (not(isVowel(string[i])) and not(isVowel(string[i + 1])))) :
 
            # swap the two characters
            (string[i],
             string[i + 1]) = (string[i + 1],
                               string[i]);
     
    string = "".join(string)
    return string;
 
# Driver code
if __name__ == "__main__" :
     
    string = "geeksforgeeks";
 
    print(swapRepeated(list(string)));
     
# This code is contributed by Ryuga


C#
// C# implementation of the above approach
using System;
 
class GFG
{
 
    // Function to check if a
    // character is a vowel
    static bool isVowel(char c)
    {
        c = char.ToLower(c);
        if (c == 'a' || c == 'e' || c == 'i'
                    || c == 'o' || c == 'u')
        {
            return true;
        }
        return false;
    }
 
    // Function to swap two consecutively
    // repeated vowels or consonants
    static String swapRepeated(char []str)
    {
         
        // Traverse through the
        // length of the string
        for (int i = 0; i < str.Length - 1; i++)
        {
            char c = (char)0;
             
            // Check if the two consecutive characters
            // are vowels or consonants
            if ((isVowel(str[i]) && isVowel(str[i + 1]))
                || (!isVowel(str[i]) && !isVowel(str[i + 1])))
            {
                 
                // swap the two characters
                c = str[i];
                str[i] = str[i + 1];
                str[i + 1] = c;
            }
        }
        return String.Join("",str);
    }
 
    // Driver code
    public static void Main(String[] args)
    {
        String str = "geeksforgeeks";
        Console.WriteLine(swapRepeated(str.ToCharArray()));
    }
}
 
/* This code contributed by PrinciRaj1992 */


PHP


Javascript


输出:
geesfkogreesk