首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何压缩公交车网络?

如何压缩公交车网络?
EN

Stack Overflow用户
提问于 2009-06-29 06:43:41
回答 2查看 427关注 0票数 0

我有一个包含大量网络名称的文件。我想将公交车网络压缩如下:

代码语言:javascript
复制
abc/def/gh[0]
abc/def/gh[1]
abc/def/gh[2]
ab/ef/xx
abc/def/gh[3]

代码语言:javascript
复制
abc/def/gh[3:0]
ab/ef/xx
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-29 06:58:56

这个问题还不清楚。然而,这是我想出来的:

代码语言:javascript
复制
#!/usr/bin/perl

use strict;
use warnings;

my %data;
while (<DATA>) {
    chomp;
    if (s/^(.+)\[(\d+)\]/$1/) {
        $data{$1} = $2;
    }
    else {
        $data{$_} = 0;
    }
}

for ( keys %data ) {
    if ( $data{$_} ) {
        print "$_\[$data{$_}:0\]\n";
    }
    else {
        print "$_\n";
    }
}

__END__
abc/def/gh[0]
abc/def/gh[1]
abc/def/gh[2]
ab/ef/xx
abc/def/gh[3]
票数 4
EN

Stack Overflow用户

发布于 2009-06-29 12:10:07

在不深入细节的情况下,您似乎想

  1. 对行进行排序(顺序无关紧要,对吧?)如果相邻行可以表示为前缀0:x或prefixx:y

,则

  • 连接相邻行

这可能是实现这一目标的最有效的方法。排序将把属于一起的所有行组合在一起。连接相邻行是一个简单而直接的操作。如果您知道所有循环条目都是从开始的,并且是连续的,那么连接相邻的行就更加微不足道了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1056876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档