14 lines
450 B
Plaintext
14 lines
450 B
Plaintext
import Prelude;
|
|
|
|
public tuple[str, str, int] bestShuffle(str s){
|
|
characters = chars(s);
|
|
|
|
ranking = {<p, countSame(p, characters)> | p <- permutations(characters)};
|
|
best = {<s, stringChars(p), n> | <p, n> <- ranking, n == min(range(ranking))};
|
|
return takeOneFrom(best)[0];
|
|
}
|
|
|
|
public int countSame(list[int] permutations, list[int] characters){
|
|
return (0 | it + 1 | n <- index(characters), permutations[n] == characters[n]);
|
|
}
|