Best shuffle: Difference between revisions

m (→‎{{header|Sidef}}: updated code)
Line 1,359:
 
=={{header|Elena}}==
<lang Elena>#import system'routines.
#import extensions.
 
extension op
Line 1,369:
var aShuffled := self toArray.
0 to:(anOriginal length - 1) &doEach: (:i)
[
0 to:(anOriginal length - 1) &doEach: (:j)
[
if ((i != j) && [$(anOriginal@i != (aShuffled@j)]) && [$(anOriginal@j != (aShuffled@i)]))
[
aShuffled exchange:i:j.
].
].
].
^ aShuffled summarize:(String new); literal.
]
Line 1,389:
var aScore := Integer new.
 
0 to:(anOriginal length - 1) &doEach: (:i)
[ if ((anOriginal @ i) == (aShuffled @ i)) [ aScore +=append int:1. ]. ].
^ aScore get.
Line 1,398:
program =
[
("abracadabra", "seesaw", "grrrrrr", "pop", "up", "a") run &each: (:aWord)
[
var aShuffled := aWord shuffled.
 
console writeLineprintLine:"The best shuffle of ":aWord:" is ":aShuffled:"(":(aShuffled score:aWord):")".
].
 
Anonymous user