问题很简单......
鉴于:
-> 脏话列表,比如 List1。
-> 一个字符串(或短语)列表来搜索这些脏话,比如 List2
期望的输出:与至少一个脏话匹配的短语计数。
示例:
List1 : "cat", "dog", "mouse", "Nice animal"
List2 : "A cat is good"。“狗是坏的”、“猫和狗是好的”、“好动物”、“你好”、“你好老鼠”、“这很糟糕”
输出:5 个短语至少包含 1 个脏词。
我做了什么:
int sum = list1.Sum(s => list2.Count(t => t.Contains(s)));
这需要大约 38 秒来搜索 5600 个短语和大约 4000 个字符串。(四核,4 GB RAM)... WAYYYYYY 太慢了!
我四处寻找可能存在的解决方案或算法......找不到任何东西。
即使有人可以通过命名算法、显示代码片段或只是指指点点 (!!) 来为我指明正确的方向,那也很棒!