我有几个由100个字符串组成的数组,其中包含我使用FETCH检索到的注释。(称为comments
)和另一个包含10,000个关键字的数组。(称为关键字
)
对于数组中的每个注释,我要检查它包含哪些关键字。(我需要知道它包含的所有关键字,但不需要知道它出现的次数)
最快的方法是什么?
我尝试过foreach
在彼此之间循环:
keywords.forEach(word => {
comments.forEach(comment => {
if(comment.includes(word)) //call a function
}
})
以及之间的循环:
for(i = 0; i < keywords.length; i++) {
for(j = 0; j < comments.length; j++){
if(comments[j].includes(keywords[i])) //call a function
}
}
对于这两个,我都尝试过切换内部循环和外部循环。
我还尝试使用关键字构建正则表达式,并使用matchall
和for..of
循环进行匹配。
keywords.forEach(word => regex = regex + `(^|\\b)${word}(\\b|$)|`)
comments.forEach(comment => {
const matches = comment.matchAll(regex)
for (const match of matches){
//call a function
}
})
这些都在我最初测试的10个关键字的时候起作用,但是很明显,对于10,000个关键字,这将花费更长的时间。最有效的方法是什么?
这对我来说都是很新的,所以有可能我错过了一些明显的东西!
谢谢
请尝试使用集
。我已经在关键字
数组中创建了一个集
。现在,对于注释
数组中的每个单词,我都可以在集
中查找它是否包含该单词。
null
const keywords = ["java", "golang", "python", "ruby"];
const comments = ["I love java", "Golang is by google", "Python bit me hard"];
const hash = new Set(keywords.map((k) => k.toLowerCase()));
const test = (w) => console.log(w);
comments.forEach((c) =>
c.split(" ").forEach((w) => hash.has(w.toLowerCase()) && test(w))
);
查找字符串中出现最多的字符和个数? 如 sdsdsddssssssdd -> 字符最多的是s,出现9次 思路说明 利用python中的collections模块的Counter,查此函数详细内容.对字符串进行统计。 然后将结果转化为字典类型。 特别注意,在字符串中可能会出现数量并列第一的字符,因此要通过循环找出最大数之后,再通过循环找出最大数对应的字母(键)。 解答1(python) import
我正在阅读一些面试准备材料,我想知道如果字符串或数组中的字符可以是unicode字符,那么解决这个问题的最佳方法是什么。如果它们是严格的ascii,则可以创建一个大小为256的数组,并将每个ascii字符映射到一个索引,该数组中的位置将表示出现的次数。如果字符串有unicode字符,是否仍然可以这样做,即unicode字符的大小是否合理,您可以使用整数数组的索引来表示它?由于unicode字符的大
问题内容: 检查字符串是否仅包含字母数字字符的最快方法是什么。 我有一些代码会占用大量CPU,我想知道是否有比使用预编译正则表达式更快的方法。 问题答案: 我已经编写了使用正则表达式(根据其他答案)与不使用正则表达式进行比较的测试。在运行Java 1.6的四核OSX10.8计算机上进行的测试 有趣的是,使用正则表达式比手动迭代字符串要慢5到10倍。此外,该功能比的速度略快。一种支持允许扩展Unic
问题内容: 一种有效的方法来检查Python中的字符串是否仅包含一个字符,例如?像这样的行为: 两种看似效率低下的方法是:首先将字符串转换为列表并检查每个元素,其次使用正则表达式。有没有更有效的方法,或者这些是Python中最好的方法?谢谢。 问题答案: 到目前为止,这是最快的,甚至比它快几倍,只需使用出色的mgilson计时套件即可: 在这里,所有检查都是在Python C代码中完成的,它只是:
问题内容: 我正在尝试查找“ |”的所有出现 在一个字符串中。 但我得到一个错误: 问题答案: 功能: 将返回的索引列表中的出现。
问题是,我试图这么做,但我检查字符串长度的方法不起作用;我能做些什么来修复它?