Best shuffle: Difference between revisions

m
m (formatting improvements)
Line 9:
<lang d>int bestShuffle(string s) {
 
int countSamePositions(T, U)(T s1, U s2, uint len) {
return count!("a[0] == a[1] && a[0] != b")(zip(s1, s2), '-');
}
Line 35:
swap(ch[i-1], ch[uniform(0, i)]);
}
} while(countSamePositions(s, ch, len) > 0);
 
string result = replace(to!string(ch), "-", to!string(problemChar[0]));
int samePos = countSamePositions(s, result, len);
 
writefln("%s %s (%s)", s, result, samePos);
Anonymous user