# Check if a given string is made up of two alternating characters

• Last Updated : 06 May, 2021

Given a string str, the task is to check whether the given string is made up of only two alternating characters.
Examples:

Input: str = “ABABABAB”
Output: Yes
Input: str = “XYZ”
Output: No

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

Approach: In order for the string to be made up of only two alternating characters, it must satisfy the following conditions:

1. All the characters at odd indices must be same.
2. All the characters at even indices must be same.
3. str != str (This is because string of type “AAAAA” where a single character is repeated a number of time will also satisfy the above two conditions)

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``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 == s)``        ``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 == s)``            ``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

 ``
Output:
`Yes`

Time Complexity : O(N)
Auxiliary Space : O(1)

My Personal Notes arrow_drop_up