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

  免費注冊 查看新帖 |

Chinaunix

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

已解決:求一列非連續(xù)的數字的連續(xù)的區(qū)間,想了一天,實在想不出,求大家?guī)蛶兔?/a> [復制鏈接]

論壇徽章:
3
2015亞冠之武里南聯
日期:2015-07-29 12:14:352015年亞冠紀念徽章
日期:2015-08-12 14:28:272015亞冠之德黑蘭石油
日期:2015-09-09 17:15:52
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2015-09-22 10:34 |只看該作者 |倒序瀏覽
本帖最后由 54red 于 2015-09-23 09:24 編輯

我有一組數據,如下面的格式,第一列相同,第三列大于5,求第二列的連續(xù)區(qū)間,輸出是一段一段的小區(qū)間,實在是想不出怎么寫這個程序,求大家?guī)蛶兔Γ?br /> A        74851        1
A        74852        1
A        375904        6
A        375905        6
A        375906        7
A        375907        7
A        375908        7
A        375909        7
A        375910        7
A        375911        7
A        375912        7
B        29172057        19
B        29172058        19
B        29172059        19
B        29172060        19
B        29172061        19
B        29172062        19
B        29172063        19
B        29172064        19
B        29172065        19
B        29172066        19
B        29216088        1
B        29216089        1

結果是:
A        375904        375912
B        29172057        29172066

論壇徽章:
95
程序設計版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設計版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設計版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設計版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農
日期:2015-10-19 19:43:35程序設計版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
2 [報告]
發(fā)表于 2015-09-22 11:01 |只看該作者
這種問題要出現多少次才算是個頭?

論壇徽章:
3
2015亞冠之武里南聯
日期:2015-07-29 12:14:352015年亞冠紀念徽章
日期:2015-08-12 14:28:272015亞冠之德黑蘭石油
日期:2015-09-09 17:15:52
3 [報告]
發(fā)表于 2015-09-22 11:38 |只看該作者
我承認我的問題太多了!可能在您看來確實又很簡單。回復 2# MMMIX


   

論壇徽章:
95
程序設計版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設計版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設計版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設計版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農
日期:2015-10-19 19:43:35程序設計版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
4 [報告]
發(fā)表于 2015-09-22 13:12 |只看該作者
回復 3# 54red


    先不說這個問題簡單復雜,關鍵是它在 Perl 版已經被反復提問和回答了好多遍,你在這時間也不短了,干嗎還要再問一次?

論壇徽章:
3
2015亞冠之武里南聯
日期:2015-07-29 12:14:352015年亞冠紀念徽章
日期:2015-08-12 14:28:272015亞冠之德黑蘭石油
日期:2015-09-09 17:15:52
5 [報告]
發(fā)表于 2015-09-22 14:10 |只看該作者
大神,請你理解一下我這樣的菜鳥,任務急,時間緊,被逼無奈啊,真沒見到類似的問題,既然出現過,我去找找看,再次謝謝你之前對我的幫忙。回復 4# MMMIX


   

論壇徽章:
0
6 [報告]
發(fā)表于 2015-09-22 14:52 |只看該作者
output
  1. A        375904        375906
  2. A        375908        375912
  3. B        29172057        29172063
  4. B        29172065        29172066
復制代碼
data structure @Z
  1. [
  2. [ A, [ 375904, 375906 ], [ 375908, 375912 ], [ 375917 ], [ 375919 ] ],
  3. [ B, [ 29172057, 29172063 ], [ 29172065, 29172066 ] ]
  4. ]
復制代碼
code

  1. use 5.010;
  2. my ( $X, $Y, @Z ) = '';

  3. while (<DATA>) {
  4.     my ( $x, $y, $z ) = split;
  5.     next if $z <= 5;

  6.     $X ne $x
  7.         ? push @Z, [ $X = $x, [$y] ]
  8.         : $y - $Y == 1
  9.             ? ( $Z[-1][-1][1] = $y )
  10.             : push @{ $Z[-1] }, [$y];

  11.     $Y = $y;
  12. }

  13. for (@Z) {
  14.     my ( $x, @y ) = @$_;
  15.     @$_ > 1 and say join "\t", $x, @$_ for @y;
  16. }

  17. __DATA__
  18. A        74851        1
  19. A        74852        1
  20. A        375904        6
  21. A        375905        6
  22. A        375906        7
  23. A        375908        7
  24. A        375909        7
  25. A        375910        7
  26. A        375911        7
  27. A        375912        7
  28. A        375917        7
  29. A        375919        7
  30. B        29172057        19
  31. B        29172058        19
  32. B        29172059        19
  33. B        29172060        19
  34. B        29172061        19
  35. B        29172062        19
  36. B        29172063        19
  37. B        29172065        19
  38. B        29172066        19
  39. B        29216088        1
  40. B        29216089        1
復制代碼

評分

參與人數 1信譽積分 +10 收起 理由
54red + 10 再次感謝!

查看全部評分

論壇徽章:
3
2015亞冠之武里南聯
日期:2015-07-29 12:14:352015年亞冠紀念徽章
日期:2015-08-12 14:28:272015亞冠之德黑蘭石油
日期:2015-09-09 17:15:52
7 [報告]
發(fā)表于 2015-09-22 16:03 |只看該作者
謝謝你了,程序寫的太好了, 回復 6# Okelani


   

論壇徽章:
0
8 [報告]
發(fā)表于 2015-09-30 14:08 |只看該作者
  1. #!/usr/bin/perl

  2. use warnings;
  3. use strict;

  4. my ($last_column_1, $last_column_2, $first_column_2)=('','','');

  5. while(<DATA>)
  6. {
  7.     my @line=split(/\s+/);

  8.     if($line[2]>5)
  9.     {

  10.        if($last_column_1 eq $line[0] && $line[1] == $last_column_2+1)
  11.        {
  12.            $last_column_2 = $line[1];
  13.        }
  14.        elsif($last_column_1 ne $line[0] or $line[1] != $last_column_2)
  15.        {
  16.            print $last_column_1, " "x5, $first_column_2, " "x5, $last_column_2, "\n";
  17.            $last_column_1 = $line[0];
  18.            $last_column_2 = $line[1];
  19.            $first_column_2 = $line[1];
  20.        }
  21.     }

  22. }

  23. print $last_column_1, " "x5, $first_column_2, " "x5, $last_column_2, "\n";

  24. __DATA__
  25. A        74851        1
  26. A        74852        1
  27. A        375904        6
  28. A        375905        6
  29. A        375906        7
  30. A        375908        7
  31. A        375909        7
  32. A        375910        7
  33. A        375911        7
  34. A        375912        7
  35. A        375917        7
  36. A        375919        7
  37. B        29172057        19
  38. B        29172058        19
  39. B        29172059        19
  40. B        29172060        19
  41. B        29172061        19
  42. B        29172062        19
  43. B        29172063        19
  44. B        29172065        19
  45. B        29172066        19
  46. B        29216088        1
  47. B        29216089        1
復制代碼

論壇徽章:
0
9 [報告]
發(fā)表于 2015-09-30 14:11 |只看該作者
  1. #!/usr/bin/perl

  2. use warnings;
  3. use strict;

  4. my ($last_column_1, $last_column_2, $first_column_2, $count)=('','','',0);

  5. while(<DATA>)
  6. {
  7.     my @line=split(/\s+/);

  8.     if($line[2]>5)
  9.     {

  10.        if($last_column_1 eq $line[0] && $line[1] == $last_column_2+1)
  11.        {
  12.            $last_column_2 = $line[1];
  13.            $count++;
  14.        }
  15.        elsif($last_column_1 ne $line[0] or $line[1] != $last_column_2)
  16.        {   
  17.            print $last_column_1, " "x5, $first_column_2, " "x5, $last_column_2, "\n" if $count>0;
  18.            $last_column_1 = $line[0];
  19.            $last_column_2 = $line[1];
  20.            $first_column_2 = $line[1];
  21.            $count = 0
  22.        }
  23.     }

  24. }

  25. print $last_column_1, " "x5, $first_column_2, " "x5, $last_column_2, "\n";

  26. __DATA__
  27. A        74851        1
  28. A        74852        1
  29. A        375904        6
  30. A        375905        6
  31. A        375906        7
  32. A        375908        7
  33. A        375909        7
  34. A        375910        7
  35. A        375911        7
  36. A        375912        7
  37. A        375917        7
  38. A        375919        7
  39. B        29172057        19
  40. B        29172058        19
  41. B        29172059        19
  42. B        29172060        19
  43. B        29172061        19
  44. B        29172062        19
  45. B        29172063        19
  46. B        29172065        19
  47. B        29172066        19
  48. B        29216088        1
  49. B        29216089        1
復制代碼
稍做修改

評分

參與人數 1信譽積分 +10 收起 理由
54red + 10 多謝!學習了!

查看全部評分

論壇徽章:
3
2015亞冠之武里南聯
日期:2015-07-29 12:14:352015年亞冠紀念徽章
日期:2015-08-12 14:28:272015亞冠之德黑蘭石油
日期:2015-09-09 17:15:52
10 [報告]
發(fā)表于 2015-10-08 12:48 |只看該作者
謝謝啦!程序很贊!回復 9# xie3ks


   
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP