Given the following permutation of a,b,c,d,e,f,g,h,i,j, what is the previous permutation in lexicographic (dictionary) order? Write your answer without any blank spaces between letters.
fjadchbegi
Answers
Answer:
First of all Find the highest index as i such as s[i] < s[i+1]. If suppose an index exists, the permutation will has last permutation.
Again find the highest index like j > i such that s[j] > s[i]. Such that j must exist, since i+1 is such an index.
Swap s[i] with s[j].
Reverse all of the elements in order after index i till the last element.
Explanation:
The next word is eibjfacdgh
Finding the next lexicographical word using python library functions. However, it is ideal for smaller lists only.
Language used : Python Programming
Program : [Suitable for smaller lists]
from itertools import permutations
st=['a','b','c','d','e','f','g','h','i','j']
y=tuple('eibjdhgfca')
#you can take any word into 'y' using input function, dynamically to find the next word.
st=permutations(list(st))
st=sorted(st)
ind=st.index(y)
print(''.join(st[ind+1]))
Output :
eibjfacdgh
Explanation :
- Assign the letters needed to form the words with, as a list, into a variable.
- Take a word whose next word we need to find in dictionary order, as directly (statically) into another variable. You can take it dynamically too from the user, using str(input()) function.
- Using the permutations function, list all the permutations of the given list of letters and store the permutations list into a variable.
- Sort the permutations list using sorted() that sorts the values into dictionary order.
- Now find the index of the word taken whose next value we need to find.
- Then access that word's index+1 th value from the list which will be the word we are looking for. That's it!
Learn more :
- Printing all the palindromes formed by a palindrome word.
brainly.in/question/19151384
- Indentation is must in python. Know more about it at :
brainly.in/question/17731168