View difference between Paste ID: AfRW1tXN and RV1azkvq
SHOW: | | - or go back to the newest paste.
1
local dictionary = {}
2
3
local function insertWord(dict, word)
4
	local head, tail = word:upper():match('^(%a)(%a*)$')
5
	if not head then return false; end
6
	if not dict[head] then dict[head] = {}; end
7
	if tail == '' then
8
		dict[head][''] = true
9
		return true
10
	else
11
		return insertWord(dict[head], tail)
12
	end
13
end
14
15
local function confirmWord(dict, word)
16
	local head, tail = word:upper():match('^(%a)(%a*)$')
17
	if not head then return false; end
18
	if dict[head] then
19
		if tail == '' then
20
			return dict[head][''] or false
21
		else
22
			return confirmWord(dict[head], tail)
23
		end
24
	else
25
		return false
26
	end
27
end
28
29
insertWord(dictionary, 'BAG')
30
31
print(confirmWord(dictionary, 'BAG'))