函数运行时间

  • 题目
  • 问题实例
  • 代码演示
  • 输出结果
  • 题目

    给定一系列描述函数进入和退出的时间,问每个函数的运行时间是多少?

    问题实例

    输入s = [“F1 Enter 100”, “F1 Exit 200”, “F2 Enter 300”, “F2 Exit 400”, “F1 Exit 500”],则输出[‘F1|400’, ‘F2|100’],即F1从100进入函数,500时刻退出,运行时长400, F2从200时刻进入函数,300时刻退出函数,运行时长为100

    代码演示

    class Solution:
        # 获取运行时间
        def getRuntime(self, a):
            # 创建一个字典,用于存储每个函数的运行时间
            map = {}
            # 遍历输入的列表
            for i in a:
                # 初始化计数器
                count = 0
                # 找到空格的位置
                while not i[count] == ' ':
                    count = count + 1
                # 获取函数名
                fun = i[0:count]
                # 判断是进入还是退出
                if i[count + 2] == 'n':
                    # 进入函数,获取时间
                    count = count + 7
                    v = int(i[count : len(i)])
                    # 如果函数已经在字典中,则更新运行时间
                    if fun in map.keys():
                        map[fun] = v - map[fun]
                    # 如果函数不在字典中,则添加到字典中
                    else:
                        map[fun] = v
                # 退出函数,获取时间
                else:
                    count = count + 6
                    v = int(i[count : len(i)])
                    # 更新运行时间
                    map[fun] = v - map[fun]
            # 将字典中的函数名取出,并排序
            res = []
            for i in map:
                res.append(i)
            res.sort()
            # 将函数名和运行时间拼接在一起
            for i in range(0, len(res)):
                res[i] = res[i] + "|" + str(map[res[i]])
            # 返回结果
            return res
    
    if __name__ == "__main__":
        # 输入的列表
        s = ["F1 Enter 100", "F1 Exit 200", "F2 Enter 300", "F2 Exit 400", "F1 Exit 500"]
        # 创建Solution对象
        solution = Solution()
        # 输出输入的列表
        print("请输入运行时间:", s)
        # 输出每个函数的运行时间
        print("每个的输出时间为:", solution.getRuntime(s))
    

    输出结果

    运行结果如图

    作者:萧瑟授衣

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python每日练习(3)

    发表回复