计算投影总长度
时间:2011-06-09
来源:互联网
A 15 18
A 2 7
A 4 6
B 1 10
B 3 5
C 1 3
C 4 5
C 11 13
如上,第一列为标签(列间以tab分隔),其后两列可以看成是x轴上一条线段的两个端点,计算相同标签下线段的投影总长度(即不计算重叠的部分)。
以标签A为例:

最终A标签下线段投影总长度为10-2+18-15=11。
请大侠们指点一下怎么编程序解决吧。
谢谢啦^_^
作者: junlingpang 发布时间: 2011-06-09

作者: yybmsrs 发布时间: 2011-06-09
嗯,得考虑到每一种情况,思路有点儿乱,谢谢参与

作者: junlingpang 发布时间: 2011-06-09
- #!/usr/bin/perl
-
- use strict;
- use warnings;
-
- my %result;
- while (<DATA>) {
- my ($key,$start,$end) = split /\s+/;
- foreach ($start+1 .. $end) {
- $result{$key}{'count'}++ unless ($result{$key}{$_});
- $result{$key}{$_} = 1;
- }
- }
- foreach (keys %result) {
- print "$_\t$result{$_}{'count'}\n";
- }
-
- <STDIN>;
-
- __DATA__
- A 5 10
- A 15 18
- A 2 7
- A 4 6
- B 1 10
- B 3 5
- C 1 3
- C 4 5
- C 11 13
作者: iamlimeng 发布时间: 2011-06-09
作者: zhlong8 发布时间: 2011-06-09
刚试了下,可以的,谢谢了

我再好好研究研究,呵呵
作者: junlingpang 发布时间: 2011-06-09
嗯。对于两个的情况还行,多个并集可能实现起来有点儿麻烦。谢谢提供思路

作者: junlingpang 发布时间: 2011-06-09
嗯。对于两个的情况还行,多个并集可能实现起来有点儿麻烦。谢谢提供思路
junlingpang 发表于 2011-06-09 22:34
对计算机来说多个和两个没有质的区别,它就是做重复运算的。而且写出来的程序具有通用性,抽象级别很高
作者: zhlong8 发布时间: 2011-06-09
嗯,我试一下,谢谢大侠

作者: junlingpang 发布时间: 2011-06-09
这是最简单的递归思路,其实数端点的方法更快
作者: zhlong8 发布时间: 2011-06-09
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28