我想找出以特定顺序匹配/覆盖目标范围的所有相邻范围。例如
给定范围为5-12
源范围为
1-7
1-13
4-8
4-12
5-7
5-8
5-12
5-13
7-12
8-12
因此,结果的优先级应该如下
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]任何帮助都将受到高度重视。
发布于 2016-03-30 22:56:06
首先为范围创建一个类
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;
}
}在创建这样的方法之后,在某个地方创建此方法。
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)";
}
}
}尽管如此,仍在制定其他规则
https://stackoverflow.com/questions/36310458
复制相似问题