Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ----------------------------------------------------------------------------------
- --BlueTaslem's version
- -- Returns a list of strings (each of length k)
- -- (Works inductively)
- function kstrings(chars, k)
- if (k == 0) then -- There is only one length 0 string:
- return {""};
- end
- local function vfind(t,v)
- for i,v1 in next, t do if v1 == v then return v1; end; end;
- end;
- local kminus1s = kstrings(chars, k-1); -- all (k-1)-strings
- local result = {};
- for i = 1, #chars do
- -- chars[i] followed by each (k-1)-string
- for _,km1 in pairs(kminus1s) do
- if (not vfind(result,chars:sub(i, i)..km1)) then
- table.insert(result,chars:sub(i, i)..km1);
- end;
- end;
- end;
- return result;
- end;
Advertisement
Add Comment
Please, Sign In to add comment