Given an integer n. Find a string of characters ‘a’ and ‘b’ such that the string doesn’t contain any palindrome of length 3.
Examples:
Input : 3 Output : "aab" Explanation: aab is not a palindrome. Input : 5 Output : aabba Explanation: aabba does not contain a palindrome of size 3.
The approach here is that we can use this string ‘aabb’ and print the characters of the string according to the given integer.
We need to make sure that every third character is different. If we perform operation AND on i and 2 where i = 0 to any positive integer. It will generate a pattern 0, 0, 2, 2, 0, 0, 2, 2,... 0 AND 2 = 0 1 AND 2 = 0 2 AND 2 = 2 3 AND 2 = 2 4 AND 2 = 0 //repeat the pattern.
Below is the code of above approach.
C++
// CPP program find a binary string of // given length that doesn't contain // a palindrome of size 3. #include <bits/stdc++.h> using namespace std; void generatestring( int n) { // Printing the character according to i for ( int i = 0; i < n; i++) putchar (i & 2 ? 'b' : 'a' ); puts ( "" ); } // Driver code int main() { int n = 5; generatestring(n); n = 8; generatestring(n); n = 10; generatestring(n); } |
Java
// JAVA program find a binary String of // given length that doesn't contain // a palindrome of size 3. class GFG { static void generateString( int n) { String s = "" ; // Printing the character according to i for ( int i = 0 ; i < n; i++) s += ((i & 2 ) > 1 ? 'b' : 'a' ); System.out.println(s); } // Driver code public static void main(String[] args) { int n = 5 ; generateString(n); n = 8 ; generateString(n); n = 10 ; generateString(n); } } // This code is contributed by Rajput-Ji |
Python3
# Python3 program find a binary String of # given length that doesn't contain # a palindrome of size 3. def generateString(n): s = ""; # Printing the character according to i for i in range (n): if ((i & 2 ) > 1 ): s + = 'b' ; else : s + = 'a' ; print (s); # Driver code if __name__ = = '__main__' : n = 5 ; generateString(n); n = 8 ; generateString(n); n = 10 ; generateString(n); # This code is contributed by 29AjayKumar |
C#
// C# program find a binary String of // given length that doesn't contain // a palindrome of size 3. using System; class GFG { static void generateString( int n) { String s = "" ; // Printing the character according to i for ( int i = 0; i < n; i++) s += ((i & 2) > 1 ? 'b' : 'a' ); Console.WriteLine(s); } // Driver code public static void Main(String[] args) { int n = 5; generateString(n); n = 8; generateString(n); n = 10; generateString(n); } } // This code is contributed by Rajput-Ji |
Javascript
<script> // JavaScript program find a binary String of // given length that doesn't contain // a palindrome of size 3. function generateString(n) { var s = "" ; // Printing the character according to i for ( var i = 0; i < n; i++) s += ((i & 2) > 1 ? 'b ' : ' a'); document.write(s + "<br>" ); } // Driver code var n = 5; generateString(n); n = 8; generateString(n); n = 10; generateString(n); </script> |
aabba aabbaabb aabbaabbaa
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!