📌  相关文章
📜  给定长度的二进制字符串,没有大小为 3 的回文

📅  最后修改于: 2022-05-13 01:57:08.153000             🧑  作者: Mango

给定长度的二进制字符串,没有大小为 3 的回文

给定一个整数 n。找到一个由字符串'a' 和 'b' 组成的字符,使得该字符串不包含任何长度为 3 的回文。
例子:

Input : 3
Output : "aab"
Explanation:
aab is not a palindrome.

Input : 5
Output : aabba
Explanation:
aabba does not contain a palindrome
of size 3.

这里的做法是我们可以使用这个字符串'aabb'并根据给定的整数打印字符串的字符。

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.

下面是上述方法的代码。

C++
// CPP program find a binary string of
// given length that doesn't contain
// a palindrome of size 3.
#include 
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


输出:

aabba
aabbaabb
aabbaabbaa