Dado un número entero N, la tarea es encontrar una string (considerando solo los caracteres en minúsculas) de longitud (N+1) tal que el carácter en cualquier posición sea lexicográficamente mayor que su siguiente carácter inmediato.
Ejemplos:
Input: 2 Output: cba c is greater than b and b is greater than a Input: 5 Output: fedcba
Enfoque: dado un número entero N, la tarea es encontrar una string (considerando solo caracteres en minúsculas) de longitud (N+1) tal que el carácter en cualquier posición sea lexicográficamente mayor que su inmediato
- Declare una string con todos los alfabetos en orden inverso.
- Tome el módulo del número dado con 26. Entonces, si el valor es menor que 26, ejecute un bucle desde 26 – (Valor de módulo + 1) hasta 25 y vaya a ese índice de la string e imprima ese índice.
- Divida el valor del módulo con 26 si el valor viene Dado un número entero N, la tarea es encontrar una string (considerando solo caracteres en minúsculas) de longitud (N + 1) tal que el carácter en cualquier posición debe ser lexicográficamente mayor que su inmediato mayor que 0 luego ejecute el bucle de 0 a 25 e imprima cada elemento de la string según el valor calculado.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to print a string in reverse // alphabetical order upto given number #include <bits/stdc++.h> using namespace std; // Function that prints the required string string printString(int n, string str) { string str2 = ""; // Find modulus with 26 int extraChar = n % 26; // Print extra characters required if (extraChar >= 1) { for (int i = 26 - (extraChar + 1); i <= 25; i++) str2 += str[i]; } int countOfStr = n / 26; // Print the given reverse string countOfStr times for (int i = 1; i <= countOfStr; i++) { for (int j = 0; j < 26; j++) str2 += str[j]; } return str2; } // Driver Code int main() { int n = 30; // Initialize a string in reverse order string str = "zyxwvutsrqponmlkjihgfedcba"; cout << printString(n, str); return 0; }
Java
// Java program to print a String in reverse // alphabetical order upto given number class GFG { // Function that prints the required String static String printString(int n, String str) { String str2 = ""; // Find modulus with 26 int extraChar = n % 26; // Print extra characters required if (extraChar >= 1) { for (int i = 26 - (extraChar + 1); i <= 25; i++) { str2 += str.charAt(i); } } int countOfStr = n / 26; // Print the given reverse String countOfStr times for (int i = 1; i <= countOfStr; i++) { for (int j = 0; j < 26; j++) { str2 += str.charAt(j); } } return str2; } // Driver Code public static void main(String[] args) { int n = 30; // Initialize a String in reverse order String str = "zyxwvutsrqponmlkjihgfedcba"; System.out.println(printString(n, str)); } } // This code is contributed by Rajput-JI
Python 3
# Python 3 program to print a # string in reverse alphabetical # order upto given number # Function that prints the # required string def printString(n, str): str2 = "" # Find modulus with 26 extraChar = n % 26 # Print extra characters required if (extraChar >= 1) : for i in range( 26 - (extraChar + 1), 26): str2 += str[i] countOfStr = n // 26 # Print the given reverse # string countOfStr times for i in range(1, countOfStr + 1) : for j in range(26): str2 += str[j] return str2 # Driver Code if __name__ == "__main__": n = 30 # Initialize a string in # reverse order str = "zyxwvutsrqponmlkjihgfedcba" print(printString(n, str)) # This code is contributed # by ChitraNayal
C#
// C# program to print a String in reverse // alphabetical order upto given number using System; public class GFG { // Function that prints the required String static String printString(int n, String str) { String str2 = ""; // Find modulus with 26 int extraChar = n % 26; // Print extra characters required if (extraChar >= 1) { for (int i = 26 - (extraChar + 1); i <= 25; i++) { str2 += str[i]; } } int countOfStr = n / 26; // Print the given reverse String countOfStr times for (int i = 1; i <= countOfStr; i++) { for (int j = 0; j < 26; j++) { str2 += str[j]; } } return str2; } // Driver Code public static void Main() { int n = 30; // Initialize a String in reverse order String str = "zyxwvutsrqponmlkjihgfedcba"; Console.Write(printString(n, str)); } } // This code is contributed by Rajput-JI
Javascript
<script> // JavaScript program to print a string in reverse // alphabetical order upto given number // Function that prints the required string function printString(n, str) { var str2 = ""; // Find modulus with 26 var extraChar = n % 26; // Print extra characters required if (extraChar >= 1) { for (var i = 26 - (extraChar + 1); i <= 25; i++) str2 += str[i]; } var countOfStr = parseInt(n / 26); // Print the given reverse string countOfStr times for (var i = 1; i <= countOfStr; i++) { for (var j = 0; j < 26; j++) str2 += str[j]; } return str2; } // Driver Code var n = 30; // Initialize a string in reverse order var str = "zyxwvutsrqponmlkjihgfedcba"; document.write(printString(n, str)); // This code is contributed by rdtank. </script>
Producción:
edcbazyxwvutsrqponmlkjihgfedcba
Complejidad de tiempo: O(n)
Espacio Auxiliar: O(n)
Este artículo es una contribución de Sahil Rajput . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA