22 lines
465 B
Plaintext
22 lines
465 B
Plaintext
func best_shuffle(String orig) -> (String, Number) {
|
|
|
|
var s = orig.chars
|
|
var t = s.shuffle
|
|
|
|
for i (^s) {
|
|
for j (^s) {
|
|
if (i!=j && t[i]!=s[j] && t[j]!=s[i]) {
|
|
t[i, j] = t[j, i]
|
|
break
|
|
}
|
|
}
|
|
}
|
|
|
|
(t.join, s ~Z== t -> count(true))
|
|
}
|
|
|
|
for word (<abracadabra seesaw elk grrrrrr up a>) {
|
|
var (sword, score) = best_shuffle(word)
|
|
"%-12s %12s: %d\n".printf(word, sword, score)
|
|
}
|