Encuentre una string tal que cada carácter sea lexicográficamente mayor que su siguiente carácter inmediato

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 
 

  1. Declare una string con todos los alfabetos en orden inverso.
  2. 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.
  3. 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

Deja una respuesta

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