作者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
推 dryman:真應該建議PTT弄個vi mode...現在連emacs都砍掉不少功能 05/27 21:37
→ dryman:第一句可以直接簡寫成 @myarray = keys %h; 05/27 21:37
→ dryman:@myarray = sort keys %h; 05/27 21:38
→ dryman:如果keys如原題目是str的話,那可能要這樣寫 05/27 21:38
→ dryman:@myarray = sort {$a cmp $b} keys %h; 05/27 21:39