Best shuffle: Difference between revisions
Content added Content deleted
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}}==
|