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:
GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details
- 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
- Print array of strings in sorted order without copying one string into another
- Longest palindromic String formed using concatenation of given strings in any order
- 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
- Find all palindromic sub-strings of a given string | Set 2
- Find if a string is interleaved of two other strings | DP-33
- Given two strings, find if first string is a subsequence of second
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.