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.