String binaria de longitud dada que sin un palíndromo de tamaño 3

Dado un entero n. Encuentre una string de caracteres ‘a’ y ‘b’ tal que la string no contenga ningún palíndromo de longitud 3.

Ejemplos: 

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

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

El enfoque aquí es que podemos usar esta string ‘aabb’ e imprimir los caracteres de la string de acuerdo con el entero dado. 

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.

A continuación se muestra el código del enfoque anterior. 

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>
Producción

aabba
aabbaabb
aabbaabbaa

Publicación traducida automáticamente

Artículo escrito por Abhishek Sharma 44 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *