首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以特定顺序查找与特定范围匹配/覆盖特定范围的所有不同相邻范围

以特定顺序查找与特定范围匹配/覆盖特定范围的所有不同相邻范围
EN

Stack Overflow用户
提问于 2016-03-30 21:34:29
回答 1查看 55关注 0票数 1

我想找出以特定顺序匹配/覆盖目标范围的所有相邻范围。例如

给定范围为5-12

源范围为

1-7

1-13

4-8

4-12

5-7

5-8

5-12

5-13

7-12

8-12

因此,结果的优先级应该如下

代码语言:javascript
复制
1. 5-12 (Exact match)
2. 5-7,7-12 (Two Adjacent ranges match)[Ranges Start And End Exact Match]
2. 5-8,8-12 (Two Adjacent ranges match)[Ranges Start And End Exact Match]
3. 5-13 (Single Covering range)[Range Start Exact Match]
3. 4-12 (Single Covering range)[Range End Exact Match]
3. 4-8,8-12 (Two Adjacent ranges covering)[Range End Exact Match]
3. 1-7,7-12 (Two adjacent ranges covering)[Range End Exact Match]
4. 1-13 (Single Covering range)[No Ranges Start And End Exact Match]

任何帮助都将受到高度重视。

EN

回答 1

Stack Overflow用户

发布于 2016-03-30 22:56:06

首先为范围创建一个类

代码语言:javascript
复制
class Range{
   public int start;
   public int end;
   public Range(int start, int end){
      this.start=start;
      this.end=end;
   }
   public string toString(){
      return start+"-"+end;
   }
}

在创建这样的方法之后,在某个地方创建此方法。

代码语言:javascript
复制
public static void classifyRanges(Range sourceRange, Range[]ranges){
   foreach(Range range in ranges){
      if(range.start==sourceRange.start && range.end==range.end){
         Console.WriteLine("1."+range.toString()+" (Exact Match)";
      }
   }
   foreach(Range range in ranges){
      if(range.start!=sourceRange.start && range.end!=range.end){
         Console.WriteLine("4."+range.toString()+" (No Match)";
      }
   }
}

尽管如此,仍在制定其他规则

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

https://stackoverflow.com/questions/36310458

复制
相关文章

相似问题

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