# Find a string such that every character is lexicographically greater than its immediate next character

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  `

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 contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

My Personal Notes arrow_drop_up

Improved By : Rajput-Ji, chitranayal

Article Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.