【发布时间】:2013-11-08 19:29:58
【问题描述】:
我想获取字符串中出现频率最高的 k 大小子字符串。为此,我使用一个表来存储每个子字符串的出现次数。代码如下:
function frequentWords(seq, k)
local subs = ""
local counter = {}
for i = 1,(seq:len()-k+1) do
subs = seq:sub(i, i+k-1)
counter[subs] = (counter[subs] and counter[subs] + 1 or 1)
--print(subs .. ": " .. counter[subs])
end
end
counter[subs] = (counter[subs] and counter[subs] + 1 or 1) 线的均值与counter[subs] = (counter[subs] ? counter[subs]+1 : 1) 相同。如果我们可以使用0 设置每个新的counter 元素,则此行将只有counter[subs] = counter[subs] + 1。这在Lua中可能吗?如果不是,那么做类似事情的最佳方法是什么?
例如,在 Ruby 中,这是通过像这样声明一个 Hash 来完成的:
counter = Hash.new(0)
【问题讨论】: