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:
- Declare a string with all the alphabets in reverse order.
- 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.
- 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 |
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.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.