Re: [问题] 文字符素的合成

楼主: AntaresStar   2019-04-27 03:12:35
看输入的形式 我假设同pin一定排在一起 而且里面的数字一定降幂
如果不是 也可以写个sort排一下 应该没几行
然后就照前面c大的说法来写 写成这样
my $str = 'A, B, C[1], C[0], D, P[3], P[2], P[1],';
my @arr = split /, */, $str;
my (@out, @bus);
sub bus_out {
return unless @bus;
push @out, "[$bus[1]:$bus[2]] $bus[0]";
@bus = ();
}
for (@arr) {
if (/(\w+)\[(\d+)\]/) {
@bus ? ($bus[2] = $2) : (@bus = ($1, $2, $2));
} else {
bus_out;
push @out, $_;
}
}
bus_out;
print "$_;\n" for (@out);
要写得干净比我想像中还难 没几行却写了好久 orz
作者: cutekid (可爱小孩子)   2019-04-27 08:46:00
把 D 删掉,答案好像会错
楼主: AntaresStar   2019-04-27 09:59:00
啊真的 半夜写code果然bug一堆 哈哈哈
作者: pat12345 (咖啡杯)   2019-04-27 10:17:00
XDDD

Links booklink

Contact Us: admin [ a t ] ucptt.com