Best shuffle: Difference between revisions
Content added Content deleted
(Added BBC BASIC) |
(added Liberty BASIC) |
||
Line 1,572: | Line 1,572: | ||
up, pu, (0) |
up, pu, (0) |
||
a, a, (1)</lang> |
a, a, (1)</lang> |
||
=={{header|Liberty BASIC}}== |
|||
<lang lb> |
|||
'see Run BASIC solution |
|||
list$ = "abracadabra seesaw pop grrrrrr up a" |
|||
while word$(list$,ii + 1," ") <> "" |
|||
ii = ii + 1 |
|||
w$ = word$(list$,ii," ") |
|||
bs$ = bestShuffle$(w$) |
|||
count = 0 |
|||
for i = 1 to len(w$) |
|||
if mid$(w$,i,1) = mid$(bs$,i,1) then count = count + 1 |
|||
next i |
|||
print w$;" ";bs$;" ";count |
|||
wend |
|||
function bestShuffle$(s1$) |
|||
s2$ = s1$ |
|||
for i = 1 to len(s2$) |
|||
for j = 1 to len(s2$) |
|||
if (i <> j) and (mid$(s2$,i,1) <> mid$(s1$,j,1)) and (mid$(s2$,j,1) <> mid$(s1$,i,1)) then |
|||
if j < i then i1 = j:j1 = i else i1 = i:j1 = j |
|||
s2$ = left$(s2$,i1-1) + mid$(s2$,j1,1) + mid$(s2$,i1+1,(j1-i1)-1) + mid$(s2$,i1,1) + mid$(s2$,j1+1) |
|||
end if |
|||
next j |
|||
next i |
|||
bestShuffle$ = s2$ |
|||
end function |
|||
</lang> |
|||
output |
|||
<pre> |
|||
abracadabra caadrbabaar 0 |
|||
seesaw ewaess 0 |
|||
pop opp 1 |
|||
grrrrrr rgrrrrr 5 |
|||
up pu 0 |
|||
a a 1</pre> |
|||
=={{header|Mathematica}}== |
=={{header|Mathematica}}== |