0

在 bash 我有一个排序的整数数组,如:

array[0]=1
array[1]=2
array[2]=3
array[3]=4
array[4]=7
array[5]=9
array[6]=10
array[7]=13
array[8]=15
array[9]=16

我想获得如下输出:

1-4,7,9-10,13,15-16

有没有简单快速的方法呢?

4

1 回答 1

1

我不知道任何标准的方法,但是编写自己的函数来做到这一点应该不难。类似的东西:

  • 将第一个数组元素“值”保存为“低”
  • 遍历数组并将当前的“索引”保存为“高”
  • 当数组'value'与'index'不同时,打印出'low-high'如果不是'low == high',然后打印'low'
  • 将“低”和“索引”重置为当前“值”并继续
  • 将“索引”增加一

对于预先排序的非空整数数组来说应该足够简单伪:)

(抱歉格式化,我目前使用的是带有 PC 键盘的 Mac,但我不能很好地处理它。)

于 2013-07-18T16:10:00.207 回答