zoukankan      html  css  js  c++  java
  • 写一个函数实现如下功能: 1)输入数组:[0,1,2,3,5,6,8] ==> 输出数组:[“0->3”,”5->6”,”8”] 2)输入数组:[1,2,4,5,6,7,9]==> 输出数组:['1->2','4->7','9']

    练习题:

    1.写一个函数实现如下功能:

    1)输入数组:[0,1,2,3,5,6,8] ==>

    输出数组:[“0->3”,”5->6”,”8”]

    2)输入数组:[1,2,4,5,6,7,9]==>

    输出数组:['1->2','4->7','9']

    分析:

           1.连续数字输出为n->m

           2.需要考虑列表中所有数字都为连续数字

           3.列表中最后一个数字为单数

      4.列表中两个连续相同的数字

    def getSerialize(list):
        list2 = []   #定义一个空列表,用于存放返回数据
        num1 = list[0]   #定义一个变量,默认为list的第一个数
        num2 = 0
        for i in range(1,len(list)):  #遍历列表
            print((list[i]-list[i-1]))
            if list[i]-list[i-1] != 1:   #判断数字是否为连续数
                
                num2 = list[i-1]         #如果不是连续数,将list[i-1] 赋值给num2
                
                if num2 != num1:        #判断num1与num2是否相等
                    str1 = str(num1) + '->' +str(num2)    #如果不相等则将'num1->num2'赋值给str1
                    list2.append(str1)        #添加str1到list2中
                    num1 = list[i]
                else:
                    str1 = str(list[i-1])    #如果num1与num2相等,则说明list[i-1]为单数
                    list2.append(str1)     
                    num1 = list[i]
                if i == len(list)-1:     #判断i是否为列表的最后一个脚标,如果是并且list[i]为单数则str1=list[i]
                    str1 = str(list[i])  
                    list2.append(str1)
        else:
            if num1 != list[len(list)-1]:  #判断num1是否与list中的最后一个数相等,如果不相等则输出'num1->list[len(list)-1]'
                str1=str(num1) + '->' + str(list[len(list)-1])
                list2.append(str1)
        return list2

    PS.小白一枚,如有不对之处,欢迎指正^-^

  • 相关阅读:
    __ATTRIBUTE__ 你知多少?【转】
    mount源码分析 【转】
    linux下共享内存mmap和DMA(直接访问内存)的使用 【转】
    mmap DMA【转】
    内存映射MMAP和DMA【转】
    进度条,随机数---demo笔记【原创】
    Linux内核抢占与中断返回【转】
    内核随记(三)--同步(1)【转】
    内核随记(三)--同步(2)【转】
    理解Linux中断 (1)【转】
  • 原文地址:https://www.cnblogs.com/muzii/p/14085638.html
Copyright © 2011-2022 走看看