给定一组整数数列,返回用逗号分隔这些数字的字符串格式,如果有连续三个数字或以上的区间,则用 – 代替中间的数字,譬如 1,2,3,4 替换为 1-4。
输入样例:
[-5, -3, -2, -1, 0, 3, 15, 16, 18, 19, 20, 21]
输出样例:
“-5,-3-0,3,15,16,18-21”
算法思路:
- 可以使用两个指针 prev 和 curr,prev为区间头,curr为区间尾,根据当前数值来决定如何把 prev 和 curr格式成字符串。
- prev 和 curr 初始化为排序后数列的第一个数值。
- 删除数列第一个数字,在最后加上一个None值,然后循环检查数列里的数字。
- 如果当前数值等于 curr 加 1,那么把curr设置为当前数值。
- 如果当前数值不等于 curr 加 1,那么需要格式化 prev 和 curr并保存,然后把prev和curr都设置为当前数值。
- 最后用逗号合并保存的字符串列表。