Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -------------------------------------------------------------------------------------------------
- -- Este programa รฉ protegido por leis de software internacional --
- -- e pelas leis de Deus. --
- -- Afinal de contas, sรณ Deus sabe como essa merda funciona ... --
- -- Nรฃo altere nada abaixo. --
- -------------------------------------------------------------------------------------------------
- getmetatable ("").__index = function (str, i)
- if (type (i) == "number") then
- return string.sub (str, i, i)
- end
- return string [i]
- end
- function generateAnagrams(String)
- local len = String:len()
- local for_str = " for var_%d=1, %d do \n"
- local end_str = " end \n"
- local function_permut_str = "function perm(str)\n "
- local function_permut_if_str = "if type(str) == \"string\" then\n"
- local s = ""
- -- function e if concatenados
- s = s .. function_permut_str .. function_permut_if_str
- -- cria numero de fors de acordo com 'len'
- for i=1, len do
- s = s .. string.format(for_str, i, len)
- end
- -- dentro do ultimo for, printa as variaveis de controle
- s = s .. "var = table.concat( " .. (
- function (n)
- local temp_tab = {}
- for i=1, n do
- table.insert(temp_tab, string.format("var_%d", i))
- end
- return (
- function()
- local str = ""
- for i, v in pairs(temp_tab) do
- str = str == "" and "{"..str .. tostring(v) or str .. ", ".. tostring(v)
- end
- return str .. "}"
- end)()
- end)(len) .. ", \"\")"..(
- function()
- local pattern = ""
- for i=1, len do
- pattern = pattern .. ":gsub('"..i .."', '".. String[i] .. "')"
- end
- return pattern
- end)().. " \n print(var)"
- for i=1, len + 1 do
- s = s .. end_str
- end
- s = s .. "end"
- loadstring(s)()
- perm(s)
- end
- generateAnagrams("abcdefg")
- print("os.clock(): "..os.clock())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement