Best shuffle: Difference between revisions
Content added Content deleted
m (→{{header|REXX}}: added REXX language.) |
(J) |
||
Line 61: | Line 61: | ||
assert(bestShuffle("a") == 1); |
assert(bestShuffle("a") == 1); |
||
}</lang> |
}</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}}== |
=={{header|PicoLisp}}== |