Python有一个range
方法,它允许做这样的事情:
>>> range(1, 6)
[1, 2, 3, 4, 5]
我需要的是相反的东西:输入一组数字,输出其起始点和结束点。
>>> magic([1, 2, 3, 4, 5])
[1, 5] # note: 5, not 6; this differs from `range()`
这对于上面的例子来说很容易实现,但是否可能允许间隔或多个范围,并返回类似 PCRE 的字符串格式的范围?类似于这样:
>>> magic([1, 2, 4, 5])
['1-2', '4-5']
>>> magic([1, 2, 3, 4, 5])
['1-5']
编辑:我正在寻找一个 Python 解决方案,但我也欢迎其他语言的工作示例。更重要的是找到一种优雅、高效的算法。附加问题:是否有任何编程语言具有内置的此功能方法?