Binary String of given length that without a palindrome of size 3
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 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); } |
chevron_right
filter_none
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 |
chevron_right
filter_none
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 |
chevron_right
filter_none
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 |
chevron_right
filter_none
Output:
aabba aabbaabb aabbaabbaa
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.