Dada una string str , la tarea es verificar si la string dada se compone de solo dos caracteres alternos.
Ejemplos:
Entrada: str = “ABABABAB”
Salida: Sí
Entrada: str = “XYZ”
Salida: No
Enfoque: para que la string se componga de solo dos caracteres alternos, debe cumplir las siguientes condiciones:
- Todos los caracteres en índices impares deben ser iguales.
- Todos los caracteres en índices pares deben ser iguales.
- 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