2011-07-05 76 views
-3

我试图找出如何实现以下操作的方法:拆分数组和计数值

该方法将在一个文本文件,并计数的单词数,直到指定的字符“# ”。

一个数组通过该方法作为参数传递,它包含一个连续数字列表。数组中的数字对应于文本文件在文本文件中出现的位置(忽略#),因此第4个字将对应于值3(n-1)。

该方法将统计数组中出现#的单词的次数,并将其除以#之间的条目总数,然后每次完成此操作时取平均值。

所以一个例子来说明这一点:

假设你有一个包含文本文件:

大家好,我的名字#东西#

了相应的阵列将是:

0 ,0,1,1,1,2,2,2,2,3,4,4(序列中每个字母的数字)

第一个哈希将出现在2和3之间。所以2代表日#在#之前发生。所以我们计算(总数为2)/总数为0,1和2。这将是4/9。

然后我们会计算两个哈希值之间的相同值#是#。 '东西'对应于4,所以我们会有(总数4)/总数3和4。 这将是2/3。

我们会再取2/3和4/9

平均,我希望这是明确的,让我知道如果你需要任何澄清。

+0

向我们展示您拥有的代码。 – Marcelo

+0

你有没有试过? –

+0

通过为你解决这个问题,它破坏了作业的目的...... –

回答

1

我想split()任何空白字符的字符串。现在我有一个数组中的每个单词,每个单元格的索引代表相应的数字,单元格的内容(单词)长度是'我有多少个0或1或..'。
这应该解决问题的第一部分。

然后,你需要找到每个#是哪里,它的偏移量是,但是你想用文字表示的偏移量,而不是字符。所以我会遍历先前创建的数组,并检查我存储的单词是否是#。如果是这样,我会更新一个标记变量(这应该保留上次看到的#的位置/索引),并计算出您想要的分区(4/8,2/3 w/e)。这是先前单元格内容的长度除以从标记到当前索引-1的长度之和。

我认为就是这样;逻辑。这并不难实现。只是不要忘记检查边界。

+0

嗨,单词长度不是0或1的数字,它只是任何随机数字 – Labra

+0

嗯?你说“名字”是4个字母,因此有4个2,所以这个分数是4/total_num_of_nums – c00kiemon5ter

+0

hmm!你没有这么说,但这仍然有效。而不是长度只是获得相应索引的数量的数量,你就完成了。一样。 – c00kiemon5ter