Related Articles
Find a string such that every character is lexicographically greater than its immediate next character
• Last Updated : 29 Apr, 2021

Given an integer N, the task is to find a string(considering only lowercase characters) of length (N+1) such that the character at any position should be lexicographically greater than its immediate next character.
Examples:

```Input: 2
Output: cba
c is greater than b and
b is greater than a

Input: 5
Output: fedcba```

Approach:

1. Declare a string with all the alphabets in reverse order.
2. Take modulus of the given number with 26. So, if the value is less than 26, run a loop from 26 – (Modulus Value + 1) to 25 and go to that index of the string and print that index.
3. Divide the modulus value with 26 if value comes greater than 0 then run the loop to 0 to 25 and print every element of the string by given the calculated value.

Below is the implementation of above approach:

## C++

 `// C++ program to print a string in reverse``// alphabetical order upto given number``#include ``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

 ``

Output:

`edcbazyxwvutsrqponmlkjihgfedcba`

This article is contributed by Sahil Rajput. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.