Comprobar si una string dada se compone de dos caracteres alternos

Dada una string str , la tarea es verificar si la string dada se compone de solo dos caracteres alternos.
Ejemplos: 
 

Entrada: str = “ABABABAB” 
Salida:
Entrada: str = “XYZ” 
Salida: No 
 

Enfoque: para que la string se componga de solo dos caracteres alternos, debe cumplir las siguientes condiciones: 
 

  1. Todos los caracteres en índices impares deben ser iguales.
  2. Todos los caracteres en índices pares deben ser iguales.
  3. str[0] != str[1] (Esto se debe a que la string de tipo “AAAAA” donde un solo carácter se repite varias veces también cumplirá las dos condiciones anteriores)

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

C++

// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
 
// Function that returns true if the string
// is made up of two alternating characters
bool isTwoAlter(string s)
{
 
    // Check if ith character matches
    // with the character at index (i + 2)
    for (int i = 0; i < s.length() - 2; i++) {
        if (s[i] != s[i + 2]) {
            return false;
        }
    }
 
    // If string consists of a single
    // character repeating itself
    if (s[0] == s[1])
        return false;
 
    return true;
}
 
// Driver code
int main()
{
    string str = "ABAB";
 
    if (isTwoAlter(str))
        cout << "Yes";
    else
        cout << "No";
 
    return 0;
}

Java

// Java implementation of the approach
import java.io.*;
 
class GFG
{
 
// Function that returns true if the string
// is made up of two alternating characters
static boolean isTwoAlter(String s)
{
 
    // Check if ith character matches
    // with the character at index (i + 2)
    for (int i = 0; i < s.length() - 2; i++)
    {
        if (s.charAt(i) != s.charAt(i + 2))
        {
            return false;
        }
    }
 
    // If string consists of a single
    // character repeating itself
    if (s.charAt(0) == s.charAt(1))
        return false;
 
    return true;
}
 
// Driver code
public static void main (String[] args)
{
        String str = "ABAB";
 
    if (isTwoAlter(str))
        System.out.print( "Yes");
    else
        System.out.print("No");
}
}
 
// This code is contributed by anuj_67..

Python 3

# Function that returns true if the string
# is made up of two alternating characters
def isTwoAlter( s):
 
    # Check if ith character matches
    # with the character at index (i + 2)
    for i in range ( len( s) - 2) :
        if (s[i] != s[i + 2]) :
            return False
         
     
 
    #If string consists of a single
    #character repeating itself
    if (s[0] == s[1]):
        return False
 
    return True
 
# Driver code
if __name__ == "__main__":
    str = "ABAB"
 
    if (isTwoAlter(str)):
        print ( "Yes")
    else:
        print ("No")
 
# This code is contributed by ChitraNayal

C#

// C# implementation of the approach
using System;
 
class GFG
{
 
    // Function that returns true if the string
    // is made up of two alternating characters
    static bool isTwoAlter(string s)
    {
     
        // Check if ith character matches
        // with the character at index (i + 2)
        for (int i = 0; i < s.Length - 2; i++)
        {
            if (s[i] != s[i +2])
            {
                return false;
            }
        }
     
        // If string consists of a single
        // character repeating itself
        if (s[0] == s[1])
            return false;
     
        return true;
    }
     
    // Driver code
    public static void Main()
    {
            string str = "ABAB";
     
        if (isTwoAlter(str))
            Console.WriteLine( "Yes");
        else
            Console.WriteLine("No");
    }
}
 
// This code is contributed by AnkitRai01

Javascript

<script>
 
// Javascript implementation of the approach
     
    // Function that returns true if the string
    // is made up of two alternating characters
    function isTwoAlter(s)
    {
        // Check if ith character matches
    // with the character at index (i + 2)
    for (let i = 0; i < s.length - 2; i++)
    {
        if (s[i] != s[i+2])
        {
            return false;
        }
    }
   
    // If string consists of a single
    // character repeating itself
    if (s[0] == s[1])
        return false;
   
    return true;
    }
     
    // Driver code
    let str = "ABAB";
    if (isTwoAlter(str))
        document.write( "Yes");
    else
        document.write("No");
     
    // This code is contributed by rag2127
     
</script>
Producción: 

Yes

 

Complejidad de Tiempo : O(N) 
Espacio Auxiliar : O(1)
 

Publicación traducida automáticamente

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