Best shuffle: Difference between revisions

J
m (→‎{{header|REXX}}: added REXX language.)
(J)
Line 61:
assert(bestShuffle("a") == 1);
}</lang>
 
=={{header|J}}==
 
Brute force approach:
 
<lang j>bestShuf=:3 :0
target=. 0 >. ({. - +/@}.) \:~ #/.~y
n=._1 [ lim=.!#y
while.lim > n=.n+1 do.
r=.n A. y
if.target=+/r=y do.return.end.
end.
)
 
fmtBest=:3 :0
b=. bestShuf y
y,', ',b,' (',')',~":+/b=y
)
</lang>
 
Example:
 
<lang j> fmtBest&>;:'abracadabra seesaw elk grrrrrr up a'
abracadabra, baaracadrab (0)
seesaw, essewa (0)
elk, lke (0)
grrrrrr, rgrrrrr (5)
up, pu (0)
a, a (1)
</lang>
 
=={{header|PicoLisp}}==
6,962

edits