本题是字符串分词 + 统计 + 二元共现,可按以下步骤处理:
, . ! ? ; : 切分得到单词列表;转小写后参与比较。给定日志字符串数组 logs 和关键词数组 keywords,统计每个关键词在所有日志中出现的总次数,并找出经常一起出现的关键词组合(至少在 2 条日志中同时出现)。
1≤logs.length ≤1000,1≤keywords.length ≤100,每条日志长度 ≤1000 字符
输入
["Error in system", "warning: error detected", "No errors found"],
["error", "warning"]
输出
[2,1]
说明
关键词统计:error 出现 2 次,warning 出现 1 次
关联分析:error 和 warning 只在第 2 条日志中同时出现 1 次,未达到至少 2 次共现的标准,因此无关联组合输出
输入
["Error: system failure", "Warning: error in network", "System error detected again", "Network warning error found"],["error", "system", "warning", "network"]
输出
[4,2,2,2,0,1,0,2,0,3,2,3]
说明
关键词统计:error 出现 4 次,system 出现 2 次,warning 出现 2 次,network 出现 2 次 关联组合:
输入
["Error in module A", "Module error B error", "Error module C error", "Module error D"],["error", "module"]
输出
[6,4,0,1]
说明
关键词统计:error 出现 6 次(第 1 条 1 次,第 2 条 2 次,第 3 条 2 次,第 4 条 1 次),module 出现 4 次
关联组合:(error,module)在第 1、2、3、4 条日志中都同时出现,共现 4 次 → 输出 [0,1] 最终结果:统计次数 [6,4] + 关联组合索引 [0,1]
输入
["Test log one","Test log two","Test log three"],["test", "log", "one", "two", "three"]
输出
[3,3,1,1,1,0,1]
说明
关键词统计:test 出现 3 次,log 出现 3 次,one 出现 1 次,two 出现 1 次,three 出现 1 次
关联组合:(test,log)在第 1、2、3 条日志中都同时出现,共现 3 次 → 输出 [0,1]
其他关键词组合未达到 2 次共现标准
最终结果:统计次数 [3,3,1,1,1] + 关联组合索引 [0,1]
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.