作者drm343 (一卡那亚)
看板Perl
标题Re: [闲聊] 刚刚有一篇文章..
时间Thu May 27 20:47:04 2010
※ 引述《dryman (dryman)》之铭言:
: 是一个解排列组合的问题..
: 解完後来看,文章居然不见了XD
: 给定一个hash
: %h=('a'=>3, 'b'=>4, 'c'=>5,);
: 印出他们的排列组合及value相乘值
: ab 12
: ac 15
: bc 20
: 这是我的解法:
: @h=%h;
: for $idx (0..$#h/2){
: $_ != $idx and
: print "$h[$idx*2]$h[$_*2] ", $h[$idx*2+1]*$h[$_*2+1], "\n"
: for $idx..$#h/2;
: }
我的解法其实只是把 for 抓改成前置式而已,并没有太大差别啦
for ( keys %h ) { push @myarray,$_; }
@myarray = sort @myarray;
for $i ( 0..$#myarray ) {
for $j ( $i+1..$#myarray ) {
( $myarray[$i] ne $myarray[$j] ) ? print "$myarray[$i]$myarray[$j] is ".$h{"$myarray[$i]"}*$h{"$myarray[$j]"}."\n" : next ;
}
}
好想念 vim 的 supertab 跟 hl 阿......
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.223.232.78
1F:推 dryman:真应该建议PTT弄个vi mode...现在连emacs都砍掉不少功能 05/27 21:37
2F:→ dryman:第一句可以直接简写成 @myarray = keys %h; 05/27 21:37
3F:→ dryman:@myarray = sort keys %h; 05/27 21:38
4F:→ dryman:如果keys如原题目是str的话,那可能要这样写 05/27 21:38
5F:→ dryman:@myarray = sort {$a cmp $b} keys %h; 05/27 21:39