zoukankan      html  css  js  c++  java
  • 《数据结构与算法》第一章入门的烂又长答案实现

    from random import randrange
    import math
    class basic_exercises:
        def is_multiple(n,m):
            '''
            is_multiple(n,m)函数,如果n是m的倍数,即存在整数i使得n=mi,那么函数返回True,否则False
            '''
            try:
                if (n % m):
                    return False
                else:
                    return True
            except ZeroDivisionError:
                print("ZeroDivisionError,被除数为零")
        def is_even(k):
            '''
            接收一个整数k,不用乘、除、取余,判断奇偶
            :return: 奇数返回True,偶数返回Flase
            '''
            try:
                if (k&1):
                    return True
                else:
                    return False
            except TypeError:
                print("TypeError,输入非整数")
        def minmax(self, *list):
            '''
            找出序列中的最大数和最小数,返回一个长度为2的元组。
            :param data: 数字序列
            :return: 长度为2的元组——最大数和最小数
            '''
            print(list)
            k = j = list[0]
    
            # j = list[0]
            for i in range(len(list)):
                if k < list[i]:
                    k = list[i]
                elif j > list[i]:
                    j = list[i]
            return k,j
        def Sum_of_squares(self, num):
            '''
            返回正整数1~num的平方和
            '''
            k = 0
            for i in range(1,num+1):
                j = i*i
                k = k + j
            return k
        def Sumofsquares_baseonsum(self, num):
            '''功能同Sum_of_squares()方法,使用sum实现'''
            list = []
            for i in range(1,num+1):
                list.append(i*i)
            return sum(list)
        def Odd_Sum_of_squares(self,num):
            '''
            返回1~num正整奇数的平方和
            '''
            k = 0
            j = 0
            for i in range(1,num+1):
                if (i&1):
                    j = j + i * i
            return j
        def OddSumof_squares_baseonsum(self,num):
            '''功能同Odd_Sum_of_squares()方法,使用sum实现'''
            list = []
            for i in range(1,num+1):
                if (i&1):
                    list.append(i*i)
            return sum(list)
        def Positive_negative_index(self, s ,k):
            '''
            存在长度n的字符串s,索引-n<=k<0,s[k]与s[j]指向同一元素,输入n,返回k
            :param s: 字符串s
            :param k:负数索引
            :return:
            '''
            a = len(s)
            if (-a <=k< 0):
                j = k+a
                if(s[k] == s[j]):
                    return j
            else:
                print("Error:入参应该为小于长度的负整数")
        def range_test(self,start, end, Cadence=1):
            '''生成一个值为50、60、70、80的排列,求range构造函数的参数'''
            for i in range(start, end, Cadence):
                print(i)
            return start, end, Cadence
        def list_range_make(self,start, end, Cadence=1):
            '''使用range生成列表'''
            list=[]
            for i in range(start, end, Cadence):
                list.append(2 ** i)
            return list
        def choice_data(self, data):
            '''非空序列返回一个随机元素'''
            i = randrange(len(data))
            return data[i]
        def reverse_list(self, list):
            '''
            颠倒n个整数组成的列表,输出新列表
            '''
            list1=[]
            for i in list:
                list1.insert(0, i)
            return list1
        # 更优解
        def reverse_list2(self, data):
            '''
            颠倒n个整数组成的列表,输出新列表
            list[param1:param2:param3]
            param1,相当于start_index,可以为空,默认是0
            param2,相当于end_index,可以为空,默认是list.size
            param3,步长,默认为1。步长为-1时,返回倒序原序列
            '''
            return data[::-1]
    
    if __name__ == '__main__':
        data = [0, 1, 2, 5, 5, 2, 5, 5, 56]
        a = basic_exercises().reverse_list2(data)
        print(a)
    

      

  • 相关阅读:
    AIBigKaldi(十三)| Kaldi的三音子模型训练(下)(源码解析)
    AIBigKaldi(十二)| Kaldi的三音子模型训练(中)(源码解析)
    AIBigKaldi(十一)| Kaldi的三音子模型训练(上)(源码解析)
    AIBigKaldi(十)| Kaldi的thchs30实例(源码解析)
    AIBigKaldi(九)| Kaldi的解码搜索(源码解析)
    AIBigKaldi(八)| Kaldi的解码图构造(下)(源码解析)
    AIBigKaldi(七)| Kaldi的解码图构造(上)(源码解析)
    AIBigKaldi(六)| Kaldi的单音子模型训练(下)(源码解析)
    AIBigKaldi(五)| Kaldi的单音子模型训练(上)(源码解析)
    理解 Linux 的硬链接与软链接
  • 原文地址:https://www.cnblogs.com/goal9248/p/14952843.html
Copyright © 2011-2022 走看看