Best shuffle: Difference between revisions
Content added Content deleted
m (→{{header|Perl 6}}: fixed code and added output) |
m (→{{header|Sidef}}: minor code simplifications) |
||
Line 3,013: | Line 3,013: | ||
=={{header|Sidef}}== |
=={{header|Sidef}}== |
||
{{trans|Go}} |
{{trans|Go}} |
||
<lang ruby>func best_shuffle( |
<lang ruby>func best_shuffle(String orig) -> (String, Number) { |
||
var s = |
var s = orig.chars |
||
var t = s.shuffle |
var t = s.shuffle |
||
s.range.each { |i| |
s.range.each { |i| |
||
s.range.each { |j| |
s.range.each { |j| |
||
i!=j && t[i]!=s[j] && t[j]!=s[i] |
if (i!=j && t[i]!=s[j] && t[j]!=s[i]) { |
||
t[i, j] = t[j, i]; |
t[i, j] = t[j, i]; |
||
break; |
break; |
||
} |
|||
} |
} |
||
} |
} |
||
var word = t.join |
var word = t.join; |
||
(word, orig ^ word -> count("\0")); |
|||
} |
} |
||
<abracadabra seesaw elk grrrrrr up a>.each { |word| |
<abracadabra seesaw elk grrrrrr up a>.each { |word| |
||
var (sword, score) = best_shuffle(word) |
var (sword, score) = best_shuffle(word) |
||
"%-12s %12s: %d\n".printf(word, sword, score) |
"%-12s %12s: %d\n".printf(word, sword, score) |
||
}</lang> |
}</lang> |
||
{{out}} |
{{out}} |