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
Solution Comments
Show comments
Loading...
Problem Recent Solvers55
Suggested Problems
-
Find the alphabetic word product
3475 Solvers
-
Find the sum of the elements in the "second" diagonal
1208 Solvers
-
160 Solvers
-
Are all the three given point in the same line?
607 Solvers
-
Area of an equilateral triangle
7006 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!
I think test case 6 is wrong. The lexicographic follower of 'xyzDOG' is 'xyzGDO', not 'xyzGOD'.
@Stefan, if you see carefully, test case 6 asks for the *next to next* lexicographic permutation of 'DOG', which is 'GOD'.