- 论坛徽章:
- 0
|
回复 1# 小鬼啊不
如果只是解决题目,按照name列来写简单点,
LZ的本意应该是按照start end列的关系来解决
按照name列规则写个,嘎嘎~~~
#!/usr/bin/perl -w
my %hash;
while(<DATA>){
chomp;
my ($number,$start,$end,$name)=split;
if(!exists $hash{$number}{$name} ){
$hash{$number}{$name}=[$start,$end];
}
else{
$start<$hash{$number}{$name}[0] ? $hash{$number}{$name}[0]=$start:0;
$end>$hash{$number}{$name}[1] ? $hash{$number}{$name}[1]=$end:0;
}
}
print "Number start end name \n";
foreach $number(sort {$a cmp $b} (keys %hash)){
foreach $name(sort {$hash{$number}{$a}[0] <=> $hash{$number}{$b}[0]} (keys $hash{$number})){
printf "%s%10s%10s%10s\n",$number,$hash{$number}{$name}[0],$hash{$number}{$name}[1],$name;
}
}
__DATA__
NO.1 1 10 wf
NO.1 11 22 wf
NO.1 29 38 cz
NO.1 39 51 cz
NO.1 52 60 cz
NO.2 2 9 gx
NO.2 10 22 gx
NO.2 23 40 gx
|
|