亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2633 | 回復: 9
打印 上一主題 下一主題

求助:perl合并區(qū)間 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2014-10-29 15:13 |只看該作者 |倒序瀏覽
比如有如下數(shù)據(jù),第一列是分類,第二列是起始位置,第三列是結(jié)束位置
01 100 200
01 700 820
01 710 800
01 850 900
01 2000 2367
02 350 546
02 1543 1789
02 1543 1790
如果第二行的起始位置與前一行的結(jié)束位置之差<300的時候,就把他們的區(qū)間并在一起

結(jié)果如下:
01 100 200
01 700 900
01 2000 2367
02 350 546
02 1543 1790

想要知道這樣的腳本怎么寫,自己用循環(huán)已經(jīng)亂成一團了。。

論壇徽章:
26
2015亞冠之胡齊斯坦鋼鐵
日期:2015-06-25 21:40:202015亞冠之柏斯波利斯
日期:2015-08-31 17:03:192015亞冠之柏斯波利斯
日期:2015-11-07 13:10:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-11-10 06:20:00每日論壇發(fā)貼之星
日期:2015-11-10 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-11-26 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-12-02 06:20:00黃金圣斗士
日期:2015-12-07 17:57:4615-16賽季CBA聯(lián)賽之天津
日期:2015-12-23 18:34:14程序設(shè)計版塊每日發(fā)帖之星
日期:2016-01-02 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2016-01-06 06:20:00每日論壇發(fā)貼之星
日期:2016-01-06 06:20:00
2 [報告]
發(fā)表于 2014-10-29 16:47 |只看該作者
放棄了。居然這么和諧。

論壇徽章:
0
3 [報告]
發(fā)表于 2014-10-29 17:07 |只看該作者
菜鳥感覺很復雜,求版上大神解決看看

論壇徽章:
32
處女座
日期:2013-11-20 23:41:20雙子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00處女座
日期:2014-07-22 17:30:47獅子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥豬
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58處女座
日期:2014-12-02 09:17:52程序設(shè)計版塊每日發(fā)帖之星
日期:2015-06-16 22:20:002015亞冠之塔什干火車頭
日期:2015-06-20 23:28:22
4 [報告]
發(fā)表于 2014-10-29 17:42 |只看該作者
本帖最后由 yestreenstars 于 2014-10-29 17:53 編輯

Po Code...
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. my($type, $start_pos, $end_pos) = split /\s+/, <DATA>;
  5. while(<DATA>){
  6.         my @field = split;
  7.         $end_pos = $field[2] and next if $field[0] == $type and $field[1] - $end_pos < 300;
  8.         print "$type $start_pos $end_pos$/";
  9.         ($type, $start_pos, $end_pos) = split;
  10. }
  11. print "$type $start_pos $end_pos$/";

  12. __DATA__
  13. 01 100 200
  14. 01 700 820
  15. 01 710 800
  16. 01 850 900
  17. 01 2000 2367
  18. 02 350 546
  19. 02 1543 1789
  20. 02 1543 1790
復制代碼

論壇徽章:
8
戌狗
日期:2014-09-26 16:39:44水瓶座
日期:2014-10-10 02:06:57金牛座
日期:2014-10-11 23:04:042015亞冠之首爾
日期:2015-06-23 15:37:0015-16賽季CBA聯(lián)賽之天津
日期:2016-01-22 18:58:2915-16賽季CBA聯(lián)賽之佛山
日期:2016-05-31 19:18:0815-16賽季CBA聯(lián)賽之同曦
日期:2016-08-10 16:26:3315-16賽季CBA聯(lián)賽之遼寧
日期:2018-01-10 11:47:40
5 [報告]
發(fā)表于 2014-10-29 18:15 |只看該作者
回復 4# yestreenstars

學習了,思路很清晰


   

論壇徽章:
1
羊年新春福章
日期:2015-04-28 20:40:58
6 [報告]
發(fā)表于 2014-10-29 18:46 |只看該作者
  1. #!/usr/bin/perl
  2. use strict;
  3. my %hash;
  4. while (<DATA>){
  5. chomp;
  6. my ($name,$s,$e) = split /\s+/,$_;
  7. push @{$hash{$name}},[$s,$e];
  8. }
  9. foreach my $k (keys %hash){
  10. my @sort =  sort {$a->[0] <=> $b->[0]}@{$hash{$k}};
  11. my $start = $sort[0][0];
  12. my $end = $sort[0][1];
  13. for my $i (1..$#sort){
  14.   if ($end >= $sort[$i][0] -300){
  15.       $end =  $sort[$i][1];
  16.   }
  17.   if ($end >= $sort[$i][1]){next;
  18.   }
  19.   else {
  20.   print "$k\t$start\t$end\n";
  21.   $start =  $sort[$i][0];
  22.   $end =  $sort[$i][1];
  23.   }
  24. }
  25. print "$k\t$start\t$end\n";
  26. }

  27. __DATA__
  28. 01 100 200
  29. 01 700 820
  30. 01 710 800
  31. 01 850 900
  32. 01 2000 2367
  33. 02 350 546
  34. 02 1543 1789
  35. 02 1543 1790
復制代碼
回復 1# xiaotuoba001


   
walklan 該用戶已被刪除
7 [報告]
發(fā)表于 2014-10-30 09:22 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽

論壇徽章:
0
8 [報告]
發(fā)表于 2014-10-30 10:39 |只看該作者
回復 4# yestreenstars


    很清晰,學習了!

論壇徽章:
0
9 [報告]
發(fā)表于 2014-10-30 10:40 |只看該作者
回復 6# 清泉一邊


    謝謝幫助,學習了呢!:wink:

論壇徽章:
0
10 [報告]
發(fā)表于 2014-10-30 11:07 |只看該作者
回復 7# walklan


    受益匪淺,謝謝!
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP