【发布时间】:2011-03-13 12:18:00
【问题描述】:
我有一组可变大小的字符串,例如:
AAA23
AB1D1
A1BC
AAB212
我的目标是按字母顺序为 COLUMNS 收集独特的字符,例如:
第一列:AAAA
第二列:AB1A
等等……
此刻,我能够通过哈希值提取帖子。但是现在,我该如何对数据进行排序?我可以为哈希的每个哈希创建一个新数组吗?
非常感谢您的帮助!
阿尔
我的代码:
#!/usr/bin/perl
use strict;
use warnings;
my @sessions = (
"AAAA",
"AAAC",
"ABAB",
"ABAD"
);
my $length_max = 0;
my $length_tmp = 0;
my %columns;
foreach my $string (@sessions){
my $l = length($string);
if ($l > $length_tmp){
$length_max = $l;
}
}
print "max legth : $length_max\n\n";
my $n = 1;
foreach my $string (@sessions){
my @ch = split("",$string);
for my $col (1..$length_max){
$columns{$n}{$col} = $ch[$col-1];
}
$n++;
}
foreach my $col (keys %columns) {
print "colonna : $col\n";
my $deref = $columns{$col};
foreach my $pos (keys %$deref){
print " posizione : $pos --> $$deref{$pos}\n";
}
print "\n";
}
exit(0);
【问题讨论】:
-
第五列和第六列缺少一些字符,你打算怎么办?
-
你说你希望每列都有唯一的字符。对于受过一些数学训练的以英语为母语的人来说,这意味着每列不应包含重复的字符,但您为第一列和第二列给出的预期答案是
AAAA和AB1A。数字应该如何根据字母字符排序?鉴于A出现在第二列答案的开头和结尾,它似乎根本没有排序。
标签: perl hash perl-data-structures