Problem 604. Next lexicographic - permutation
Find next lexicographic - permutation (permutations as it would occur in a dictionary order).
E.g: nextP('ABCD') = ABDC
If you can generate the next permutation, then you can also generate a 'cycle' of all permutations using a construct like,
cycle = +1;
curr = start;
while ( true )
curr = nextP(curr);
if ( curr == start )
break;
end
cycle = cycle+1;
end
For fun, you could generate all the n! permutations of a, unique n-letter string.
Solution Stats
Problem Comments
-
2 Comments
Stefan Abendroth
on 20 Jul 2023
I think test case 6 is wrong. The lexicographic follower of 'xyzDOG' is 'xyzGDO', not 'xyzGOD'.
Dyuman Joshi
on 21 Jul 2023
@Stefan, if you see carefully, test case 6 asks for the *next to next* lexicographic permutation of 'DOG', which is 'GOD'.
Solution Comments
Show commentsProblem Recent Solvers49
Suggested Problems
-
Project Euler: Problem 1, Multiples of 3 and 5
3005 Solvers
-
Project Euler: Problem 6, Natural numbers, squares and sums.
2046 Solvers
-
Who knows the last digit of pi?
646 Solvers
-
731 Solvers
-
31 Solvers
More from this Author10
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!