RosettaCodeData/Task/Best-shuffle/Pluto/best-shuffle.pluto
2026-04-30 12:34:36 -04:00

17 lines
482 B
Text

require "table2"
local fmt = require "fmt"
local tests = {"abracadabra", "seesaw", "elk", "grrrrrr", "up", "a"}
for tests as s do
local t = s:split(""):shuffle()
for i = 1, #t do
for j = 1, #t do
if i != j and t[i] != s[j] and t[j] != s[i] then
t[i], t[j] = t[j], t[i]
break
end
end
end
local c = range(1, #s):count(|i| -> s[i] == t[i])
fmt.print("%s, %s, (%d)\n", s, t:concat(""), c)
end