合并连续数字的算法
2008-05-31 14:11
176 查看
public class Test { public static void main(String[] args) { String str = new String( "1,2,3,4,5,6,7,8,9,11,13,14,1000,1001,1002,1003"); String[] s = str.split(","); int[] num = new int[s.length]; String result = ""; for (int i = 0; i < s.length; i++) { num[i] = Integer.parseInt(s[i]); } for (int i = 0; i < num.length; i++) { if (i == 0) { result = "" + num[i]; } else if (i == num.length - 1) { if (num[i] - num[i - 1] == 1) { result = result + "-" + num[i]; } else { result = result + "," + num[i]; } } else { if ((num[i] - num[i - 1] == 1) && (num[i + 1] - num[i] == 1)) { continue; } if ((num[i] - num[i - 1] == 1) && (num[i + 1] - num[i] != 1)) { result = result + "-" + num[i]; } if ((num[i] - num[i - 1] != 1)) { result = result + "," + num[i]; } } } System.out.println(result); } }
相关文章推荐
- 合并连续数字的算法
- 在论坛中出现的比较难的sql问题:27(字符串拆分、字符串合并、非连续数字的间隔范围、随机返回字符串)
- 算法学习-数字连续的子数组
- js-FCC算法Smallest Common Multiple。找出两个参数和它们之间的连续数字的最小公倍数。
- 算法基础:整数排序问题(连续整数只保留首尾两个数字)
- 微软算法100题25 查找连续最长的数字串
- 奇妙的算法—怎么计算一段连续数字的所有约数的和
- 算法题目---和为s的两个数字vs和为s的连续正数序列
- 算法题目---计算数字连续和
- 笔试算法题(15):-1到N中包含1的数字的个数 & 连续和为N的序列
- 名企笔试:好未来2017秋招笔试(连续最长的数字串)2017-03-05 算法爱好者
- 数据结构——算法之(024)(在字符串中找出连续最长的数字串,并把这个串的长度返回)
- 算法基础:整数排序问题(连续整数仅仅保留首尾两个数字)
- 每天学习一算法系列(22)(在字符串中找出连续最长的数字串,并把这个串的长度返回)
- 算法学习十一----连续最长的数字串
- 算法 - n个数字形成的圆圈中循环删除第m个数字(C++)
- 关于数组的问题(连续子数组的最大和、数组中出现次数超过一半的数字、调整数组顺序使奇数位于偶数之前)
- 异或运算的经典算法题:找出数组中只出现一次的数字,其它数字都出现了两次
- 改进版网页表格的合并单元格(支持不连续的列合并)
- 算法:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?