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

• Last Updated : 09 Jun, 2022

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

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 comesGiven 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  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`

Time Complexity: O(n)

Auxiliary Space: O(n)

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