Given two strings S and T, find a string of the same length which is lexicographically greater than S and smaller than T. Print “-1” if no such string is formed.(S > T)
Note: string S = s1s2… sn is said to be lexicographically smaller than string T = t1t2… tn, if there exists an i, such that s1 = t1, s2 = t2, … si – 1 = ti – 1, si < ti.
Input : S = "aaa", T = "ccc" Output : aab Explanation: Here, 'b' is greater than any letter in S('a') and smaller than any letter in T('c'). Input : S = "abcde", T = "abcdf" Output : -1 Explanation: There is no other string between S and T.
Approach: Find a string which is lexicographically greater than string S and check if it is smaller than string T, if yes print the string next else print “-1”.
To find string, iterate the string S in the reverse order, if the last letter is not ‘z’, increase the letter by one (to move to next letter). If it is ‘z’, change it to ‘a’ and move to the second last character.
Compare the resultant string with string T, if both strings are equal print ‘-1’, else print the resultant string.
Below is the implementation of above approach:
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- Print a number as string of 'A' and 'B' in lexicographic order
- Generating distinct subsequences of a given string in lexicographic order
- Find the N-th lexicographic permutation of string using Factoradic method
- Power Set in Lexicographic order
- Print all permutations in sorted (lexicographic) order
- Longest palindromic String formed using concatenation of given strings in any order
- Print array of strings in sorted order without copying one string into another
- Lexicographic rank of a string
- Lexicographic rank of a string using STL
- Given a string and an integer k, find the kth sub-string when all the sub-strings are sorted according to the given condition
- Lexicographic rank of a string with duplicate characters
- Find the k-th string in lexicographical order consisting of n-2 X's and 2 Y's
- Given two strings, find if first string is a subsequence of second
- Find all palindromic sub-strings of a given string | Set 2
- Find if a string is interleaved of two other strings | DP-33
- Find all distinct palindromic sub-strings of a given string
- Find the longest string that can be made up of other strings from the array
- Find the number of strings formed using distinct characters of a given string
- Meta Strings (Check if two strings can become same after a swap in one string)
- Vertical Order Traversal in Strings
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.