Genere una string con el máximo de alfabetos posibles con frecuencias impares

Dado un número entero N , la tarea es generar una string str que contenga el máximo posible de letras minúsculas y cada una de ellas aparezca un número impar de veces.
Ejemplos: 
 

Entrada: N = 17 
Salida: bcdefghijklmnopqr 
Explicación: Para maximizar la cantidad de caracteres, se pueden seleccionar 17 caracteres cualesquiera y hacer que aparezcan una vez. Por lo tanto, abcdefghijklmnopq, bcdefghijklmnopqx, etc. también pueden ser salidas válidas.
Entrada: N = 35 
Salida: bcdefghijklmnopqrstuvwxyaaaaaaaaaaa 
Explicación: Para maximizar la cantidad de caracteres, agregue 24 caracteres diferentes una vez y complete la longitud restante con cualquier otro carácter. 
 

Acercarse: 
 

  • Si N es menor que igual a 26, llenamos la string con N caracteres diferentes, cada uno de los cuales aparece una vez.
  • De lo contrario: 
    • Si N es impar , agregamos los 24 caracteres de ‘b’-‘y’ una vez y completamos la longitud impar restante con ‘a’.
    • Si N es par , agregamos los 25 caracteres de ‘b’-‘z’ una vez y completamos la longitud impar restante con ‘a’.

A continuación se muestra la implementación del enfoque anterior:
 

C++

// C++ program to generate a string
// of length n with maximum possible
// alphabets with each of them
// occurring odd number of times.
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to generate a string
// of length n with maximum possible
// alphabets each occurring odd
// number of times.
string generateTheString(int n)
{
    string ans="";
    // If n is odd
    if(n%2)
    {
        // Add all characters from
        // b-y
        for(int i=0;i<min(n,24);i++)
        {
            ans+=(char)('b' + i);
        }
        // Append a to fill the
        // remaining length
        if(n>24)
        {
            for(int i=0;i<(n-24);i++)
                ans+='a';
        }
    }
    // If n is even
    else
    {
        // Add all characters from
        // b-z
        for(int i=0;i<min(n,25);i++)
        {
            ans+=(char)('b' + i);
        }
        // Append a to fill the
        // remaining length
        if(n>25)
        {
            for(int i=0;i<(n-25);i++)
                ans+='a';
        }
    }
     
    return ans;
}
 
// Driven code
int main()
{
    int n = 34;
    cout << generateTheString(n);
    return 0;
}

Java

// Java program to generate a string
// of length n with maximum possible
// alphabets with each of them
// occurring odd number of times.
import java.util.*;
 
class GFG{
     
// Function to generate a string
// of length n with maximum possible
// alphabets each occurring odd
// number of times.
static String generateTheString(int n)
{
    String ans = "";
     
    // If n is odd
    if (n % 2 != 0)
    {
 
        // Add all characters from
        // b-y
        for(int i = 0;
                i < Math.min(n, 24); i++)
        {
            ans += (char)('b' + i);
        }
         
        // Append a to fill the
        // remaining length
        if (n > 24)
        {
            for(int i = 0;
                    i < (n - 24); i++)
                ans += 'a';
        }
    }
     
    // If n is even
    else
    {
         
        // Add all characters from
        // b-z
        for(int i = 0;
                i < Math.min(n, 25); i++)
        {
            ans += (char)('b' + i);
        }
 
        // Append a to fill the
        // remaining length
        if (n > 25)
        {
            for(int i = 0;
                    i < (n - 25); i++)
                ans += 'a';
        }
    }
    return ans;
}
 
// Driver code
public static void main(String[] args)
{
    int n = 34;
     
    System.out.println(generateTheString(n));
}
}
 
// This code is contributed by offbeat

Python3

# Python3 program to generate a string
# of length n with maximum possible
# alphabets with each of them
# occurring odd number of times.
 
# Function to generate a string
# of length n with maximum possible
# alphabets each occurring odd
# number of times.
def generateTheString( n):
 
    ans = ""
     
    # If n is odd
    if(n % 2):
         
        # Add all characters from
        # b-y
        for i in range(min(n, 24)):
            ans += chr(ord('b') + i)
         
        # Append a to fill the
        # remaining length
        if(n > 24):
            for i in range((n - 24)):
                ans += 'a'
         
    # If n is even
    else:
         
        # Add all characters from
        # b-z
        for i in range(min(n, 25)):
            ans += chr(ord('b') + i)
         
        # Append a to fill the
        # remaining length
        if(n > 25):
            for i in range((n - 25)):
                ans += 'a'
    return ans
 
# Driver code
if __name__ == "__main__":
     
    n = 34
    print(generateTheString(n))
 
# This code is contributed by chitranayal

C#

// C# program to generate a string
// of length n with maximum possible
// alphabets with each of them
// occurring odd number of times.
using System;
class GFG{
 
// Function to generate a string
// of length n with maximum possible
// alphabets each occurring odd
// number of times.
static string generateTheString(int n)
{
    string ans = "";
     
    // If n is odd
    if(n % 2 == 0)
    {
        // Add all characters from
        // b-y
        for(int i = 0; i < Math.Min(n, 24); i++)
        {
            ans += (char)('b' + i);
        }
         
        // Append a to fill the
        // remaining length
        if(n > 24)
        {
            for(int i = 0; i < (n - 24); i++)
                ans += 'a';
        }
    }
     
    // If n is even
    else
    {
        // Add all characters from
        // b-z
        for(int i = 0; i < Math.Min(n, 25); i++)
        {
            ans += (char)('b' + i);
        }
         
        // Append a to fill the
        // remaining length
        if(n > 25)
        {
            for(int i = 0; i < (n - 25); i++)
                ans += 'a';
        }
    }
    return ans;
}
 
// Driven code
public static void Main()
{
    int n = 34;
    Console.Write(generateTheString(n));
}
}
 
// This code is contributed by Nidhi_Biet

Javascript

<script>
 
// Javascript program to generate a string
// of length n with maximum possible
// alphabets with each of them
// occurring odd number of times.
 
// Function to generate a string
// of length n with maximum possible
// alphabets each occurring odd
// number of times.
function generateTheString(n)
{
    var ans="";
    // If n is odd
    if(n%2)
    {
        // Add all characters from
        // b-y
        for(var i=0;i<min(n,24);i++)
        {
            ans+=(char)('b' + i);
        }
        // Append a to fill the
        // remaining length
        if(n>24)
        {
            for(var i=0;i<(n-24);i++)
                ans+='a';
        }
    }
    // If n is even
    else
    {
        // Add all characters from
        // b-z
        for(var i=0;i<Math.min(n,25);i++)
        {
            ans+= String.fromCharCode('b'.charCodeAt(0) + i);
        }
        // Append a to fill the
        // remaining length
        if(n>25)
        {
            for(var i=0;i<(n-25);i++)
                ans+='a';
        }
    }
     
    return ans;
}
 
// Driven code
var n = 34;
document.write( generateTheString(n));
 
</script>
Producción: 

bcdefghijklmnopqrstuvwxyzaaaaaaaaa

 

Publicación traducida automáticamente

Artículo escrito por spp____ 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 *