找出文件中出现的单词数

时间:2012-01-21 18:50:27

标签: c# .net

我在接受采访时遇到了这个问题:

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

示例1:

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

是第一个字符串”是第一个出现次数,此字符串与字符串之间的字数为2(是,第一个)小于4。

是第二个字符串是剩余的字符串。 * this和string * 之间的单词数是2(是,秒),小于4。

因此答案是2。

我以为我会用     Dictionary<string, List<int>>

我的想法是,我使用字典并获取特定单词重复的位置列表,然后遍历两个列表,如果满足条件则递增计数,然后显示计数。

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

谢谢,

3 个答案:

答案 0 :(得分:2)

本身不是答案(老实说,我不明白这个问题:P),但是要为其他答案添加一些一般的面试建议:

在采访中,面试官总是在寻找思考过程,并且你是一个批判的,合乎逻辑的思想家。不一定你有良好的编码回忆,可以在你的大脑中编译代码。

此外,采访是一个压力很大的过程。通过在工作中放慢速度和大声说话,你不仅看起来像一个更好的沟通者和逻辑思想家(即使问题出错了),你也给自己时间思考。

使用笔和纸,按照您的想法说话,从顶部开始并完成它。即使我通过证明我至少可以尝试解决问题而不知道技术问题的答案,我也有工作; - )

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

答案 1 :(得分:0)

我认为这取决于每个字符串只进行一次或多次调用。如果它像

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

然后你真的不需要字典,甚至不需要字典。您可以遍历字符串以查找单词的出现次数,然后检查它们之间的分隔符数。

如果另一方面问题是任意搜索/索引,恕我直言,你需要一本字典。我会找一个字典,其中键是单词,值是它出现的索引列表。

HTH

答案 2 :(得分:0)

如果你需要对同一文本中不同的单词对重复这样做,那么带有索引列表的单词字典是一个很好的解决方案。但是,如果您只查找一对,那么这两个单词的两个索引列表就足够了。

列表允许您将字检测操作与计数逻辑分开。

相关问题