这里没有软件测试的泛泛理论,只有博主的最佳实践。 博主的研究方向为静态分析和性能测试,致力于各种测试工具的引入、评估和开发。 本博的测试文章均为作者原创,转载请务必注明出处。

小骆驼书作业六:散列

上一篇 / 下一篇  2008-07-07 15:21:47 / 个人分类:Perl

本章应该是很重要的一章,但小骆驼书的篇幅却不大,相当简洁。在开始作业之前,先写复习笔记

复习笔记

×散列是一种数据结构,它可以包含任意多个值。它的格式是 key value。key并不是数值,而是互不相同的任意字符串。

×如果你的任务中有“找出重复项目”、“互不相同”、“交叉引用”“查表”等字眼,实现时很有可能用得上散列。

×%表示整个散列,访问某个元素用 $family_name{"key"} = "value"; 可以用 => 给散列赋值。

×keys和values函数会返回散列中所有的键和所有的值。

×对整个散列迭代,可以用each和while配合。
 while (($key, $value) = each %hash) { print "$key => $value \n"; }
 当然,也可以用foreach达到同样的效果。

×exists和delete可以用于散列操作,含义和其字面含义相同。

习题二:写一支程序,读取一连串的单词(每行一个,直到输入结束),然后输出一份列出每个单词的出现次数的列表。

请看复习笔记中的黑体部分。这里的任务是统计单词的出现次数,和找出重复项目差不多,可以考虑使用散列。最开始时,我还真不知道怎么实现呢。以下是标准答案。

#!/usr/bin/perl -w
my ($word, @words, %count);
chomp(@words = <STDIN>);
foreach $word (@words)
{
 $count{$word} +=1;
}
foreach $word (sort keys(%count))
{
 print "$word was seen $count{$word} times.\n";
}

答案没什么说的,很棒!

 


TAG: Perl

 

评分:0

我来说两句

Open Toolbar