Re: [問題] 輸入範圍印出所屬這範圍的字(新手^^|||)

看板Perl作者 (System hacked)時間17年前 (2007/01/01 19:55), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《gohit (天哪..單場三轟..@o@)》之銘言: : 對不起我是新手....真的我不知道該怎麼辦....請高手幫幫忙...^^||| 謝謝 : 有一份資料是這樣: : 2 a : 5 b : 9 c : 12 d : 18 e : 56 f : 67 g : 88 h : 現在我打算輸入一個數字的範圍,我希望程式能夠印出藉於這範圍的文字, : 如:5 =< $X <= 50 ,印出: b,c,d,e : 請問該怎麼辦呢? : 目前只知道數字範圍的寫法:if....elsif 等語法 : 謝謝 ^^||| 推文說用 hash,不過 hash 不能直接取 range,要一些功夫: %myhash = (2 => 'a', '5' => 'b', ... 中間省略... , 88 => 'h'); @range_key_10_50 = grep {10 <= $_ && $_ <= 50} keys %myhash; 不過這個方法在量很大的時候 performance 應該不會好,可以考慮 Tree 這個 module: http://search.cpan.org/dist/Tree/ http://search.cpan.org/dist/Tree/Base.pm 不過 insert/delete 的速度沒有 hash 快,你要自己考量實際的情況... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.54.119

01/01 20:26, , 1F
唔, 是 linear search 和 binary search 的差別嗎 :P
01/01 20:26, 1F
文章代碼(AID): #15cFQcmi (Perl)
文章代碼(AID): #15cFQcmi (Perl)