作者AntaresStar ()
看板Perl
标题Re: [问题] 文字元素的合成
时间Sat Apr 27 03:12:35 2019
看输入的形式 我假设同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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.162.121.196
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Perl/M.1556305957.A.993.html
1F:推 cutekid: 把 D 删掉,答案好像会错 04/27 08:46
2F:→ AntaresStar: 啊真的 半夜写code果然bug一堆 哈哈哈 04/27 09:59
3F:推 pat12345: XDDD 04/27 10:17