找出文件中单词的出现次数

本文关键字:单词 文件 | 更新日期: 2023-09-27 18:20:55

我在一次采访中遇到了这个问题:

我们必须找出一个文本文件中两个给定单词的出现次数,它们之间有<=n个单词。

示例1:

text:`this is first string this is second string`  
Keywords:`this, string`  
n= 4  
output= 2 

"this是第一个字符串"是第一次出现,this和字符串之间的字数为2(即,first),小于4。

是第二个字符串为剩余字符串。*this和字符串*之间的字数为2(is,second),小于4。

因此答案是2。

我想我会用CCD_ 2。

我的想法是,我使用字典,获得特定单词重复的位置列表,然后在这两个列表中迭代,如果满足条件,则递增计数,然后显示计数。

我的思维过程正确吗?请提供任何改进我的解决方案的建议。

谢谢,

找出文件中单词的出现次数

这本身不是一个答案(老实说,我不理解这个问题:p),而是在其他答案的基础上添加一些一般的面试建议:

在面试中,面试官总是在寻找思维过程,你是一个批判性的、合乎逻辑的思考者。这并不一定意味着你有出色的编码回忆能力,并且可以在你的大脑中编译代码。

此外,面试也是一个充满压力的过程。通过放慢速度,在解决问题时大声说话,你不仅看起来是一个更好的沟通者和逻辑思考者(即使把问题弄错了),你还给了自己思考的时间。

用笔和纸,想怎么说就怎么说,从最上面开始,然后努力完成。通过证明我至少可以尝试解决问题,即使我不知道技术问题的答案,我也找到了工作;-)

简而言之,这不仅仅取决于的技术能力

我认为这取决于每个字符串只调用一次还是多次。如果是类似的东西

int getOccurences(String str, String reference, int min_size) { ... }

那么你就不需要字典了,甚至连一本ist都不需要。您可以遍历字符串以查找单词的出现,然后检查它们之间的分隔符数量。

另一方面,如果问题是任意搜索/索引,IMHO您确实需要一本字典。我会选择一本字典,其中关键字是单词,值是它出现的索引列表。

HTH

如果您需要对同一文本中的不同单词对重复执行此操作,那么带有索引列表的词典是一个很好的解决方案。然而,如果你只寻找一对,那么这两个单词的两个索引列表就足够了。

列表允许您将单词检测操作与计数逻辑分离。