电力系统线路杆塔统计算法(连续数合并算法)

在电力电网系统中往往需要统计线路杆塔信息(列如 2#~5# 设计覆冰厚度为20 mm; 7#~10# ,8#,910~#18  设计覆冰 厚度为30 ;这样杆塔怎么样统计。我们简化抽象出这个问题。比如1到10 数中 ,找出连续相连的数用“~”连接,不相连用","。下面看看下面算法实现。

  for (int i = 0; i < datas.Length; i++)
            {
                if (i == 0)
                {
                    result += " " + datas[i];
                }
                else if (i == datas.Length - 1)
                {
                    if (datas[i] - datas[i - 1] == 1)
                    {
                        result = result + "~" + datas[i];
                    }
                    else
                    {
                        result = result + "," + datas[i];
                    }
                    
                }
                else
                {
                    if ((datas[i] - datas[i - 1] == 1) && (datas[i + 1] - datas[i] == 1))
                    {
                        continue;
                    }
                    if ((datas[i] - datas[i - 1] == 1) && (datas[i + 1] - datas[i] != 1))
                    {
                        result = result + "~" + datas[i];
                    }
                    if ((datas[i] - datas[i - 1] != 1))
                    {
                        result = result + "," + datas[i];
                    }
                }        
            }

注意“,” 和“~” 是一样都是字符。理解这个比较好理解算法。

参考自:http://blog.csdn.net/caoyinghui1986/article/details/2498864

posted @ 2014-02-28 22:08  焦涛  阅读(902)  评论(0编辑  收藏  举报