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>
bcdefghijklmnopqrstuvwxyzaaaaaaaaa