- 求职 : 软件工程师
- 论坛徽章:
- 3
|
写这个程序分两步,第一步,将文本解析成一个数据结构,第二步,计算数据结构之间的联系。
写代码前要考虑清楚这个问题的实质:这个问题的实质就是路径搜索,这是一种基本的问题,好像一个迷宫,一条记录就好像连接在一起的出口,找到所有连接在一起的出口,就是问题的答案。
第一步,读入文件,将字符拆开,用适合的数据结构保存这些值。这一步通常耗费大量的代码,但逻辑比较简单,使用模块比较方便:- use 5.020;
- use File::Slurp qw(read_file);
- # 把文件按行读入,保存在一个列表中
- my @lines = read_file('file_name');
- # 提前声明一个数据结构
- my %records;
- # 按照行逐行处理
- for my $line (@lines) {
- # 剔除行末的字符
- chomp $line;
- # 将字符拆分成一个一个字母
- my @chars = split(/\s+/, $line);
- # 将这条记录起一个名字,还能查询里面的东西
- # $chars[0] 是第一个字符
- # @chars[ 1 .. $#chars ] 是剩下的字符数组
- $records->{ $chars[0] } = @chars[1..$#chars];
- }
复制代码 其实这类问题早就有人解决过千万次,做成一个模块,用一个函数搞定完全可以的。
后面的步骤,尝试自己解决一下。
|
|