Skip to content
Related Articles

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

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.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
 




My Personal Notes arrow_drop_up
Recommended Articles
Page :