连续数字和间断数字实现

问题
输入一组从小到大的数字,获取其连续数字并取头尾用 “~” 连接,若与左右不是连续关系,则单独输出。最终结果返回字符串,输入为数组。

示例
输入:[1,2,3,4,5,6,9,11]
输出:1~6,9,11

def simplifyStr(num):
    a = []
    ans = [] # 先将结果存储到数组,再转为字符串输出
    for i in range(len(num)):
        if i < len(num) - 1 and num[i]+1 == num[i+1]:
            a.append(num[i])
            a.append(num[i+1])
            c = str(a[0]) + '~' + str(a[-1])
        else:
            if len(a):
                ans.append(c)
                a = []
            else:
                b.append(num[i])
    str_list = ','.join(str(k) for k in ans) # 数组转字符串,用 , 隔开
    return str_list
上一篇:如何将CSDN文档输出PDF文件?


下一篇:OpenRisc-67-OR的汇编