Modifique la string intercambiando vocales o consonantes continuas

Dada una string str . La tarea es modificar la string intercambiando dos caracteres adyacentes si ambos son vocales o ambos son consonantes.
Ejemplos: 
 

Entrada: str = “geeksforgeeks” 
Salida: geesfkogreesk 
Los alfabetos ‘e’ y ‘e’ en g ee ksforgeeks son vocales, por lo que se intercambian para que la string se convierta en geeksforgeeks
Los alfabetos ‘k’ y ‘s’ en gee ks forgeeks son consonantes, por lo que se intercambian para que la string se convierta en geeskforgeeks
Los alfabetos ‘k’ y ‘f’ en gees kf orgeeks son consonantes, por lo que se intercambian para que la string se convierta en geesfkorgeeks
Los alfabetos ‘r’ y ‘g’ en geesfko rg eeks son consonantes, por lo que se intercambian para que la string se convierta en geeskfogreeks
Los alfabetos ‘e’ y ‘e’ en geeskfogr eeks son vocales, por lo que se intercambian para que la string se convierta en geeskfogreeks
Los alfabetos ‘k’ y ‘s’ en geeskfogreek ks son vocales, por lo que se intercambian para que la string se convierta en geeskfogreesk
Entrada: str = “gefeg” 
Salida: gefeg 
No hay vocales ni consonantes continuas. 
 

Acercarse: 
 

  • Recorra los caracteres de la string.
  • Considere el carácter actual y el carácter siguiente.
  • Si ambos caracteres son consonantes o ambos son vocales.
  • Luego cambia los personajes.
  • De lo contrario, continúe el proceso hasta el final de la string.

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

C++

// C++ implementation of the above approach
#include <bits/stdc++.h>
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

<?php
 
// PHP implementation of the above approach
 
// Function to check if a character is a vowel
function isVowel($c)
{
    $c = strtolower($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
function swapRepeated($str)
{
    // Traverse through the length of the string
    for ($i = 0; $i < strlen($str) - 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
            $t = $str[$i];
            $str[$i]= $str[$i + 1];
            $str[$i+1] = $t;
        }
    }
 
    return $str;
}
 
    // Driver code
 
    $str = "geeksforgeeks";
 
    echo swapRepeated($str);
    return 0;
 
// This code is contributed by ChitraNayal
?>

Javascript

<script>
      // JavaScript implementation of the above approach
      // Function to check if a
      // character is a vowel
      function isVowel(c) {
        c = c.toLowerCase();
        if (c === "a" || c === "e" || c === "i" || c === "o" || c === "u") {
          return true;
        }
        return false;
      }
 
      // Function to swap two consecutively
      // repeated vowels or consonants
      function swapRepeated(str) {
        // Traverse through the
        // length of the string
        for (var 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
            var c = str[i];
            str[i] = str[i + 1];
            str[i + 1] = c;
          }
        }
        return str.join("");
      }
 
      // Driver code
      var str = "geeksforgeeks";
      document.write(swapRepeated(str.split("")));
    </script>
Producción: 

geesfkogreesk

 

Publicación traducida automáticamente

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