• python输出HelloWorld


        学习编程语言的第一步几乎都是输出“Hello World”,而python也是如此。想要使用python语言输出"Hello World",需要使用python的heapq包中的heappush和heappop函数,heapq模块来实现最小堆,最小堆用于每次从所有列表的当前元素中选择最小的元素,再从最小堆中取出元素并合并。总体采用分治策略,将问题分解成更小的部分,递归地解决它们,然后将结果合并起来,这里输入是字符的嵌套列表,可以直接处理字符列表:

    1. from heapq import heappush, heappop
    2. def mergeKLists(lists):
    3. min_heap = []
    4. for i, lst in enumerate(lists):
    5. if lst:
    6. heappush(min_heap, (lst[0], i, 0))
    7. merged = []
    8. while min_heap:
    9. val, list_ind, element_ind = heappop(min_heap)
    10. merged.append(val)
    11. if element_ind + 1 < len(lists[list_ind]):
    12. next_tuple = (lists[list_ind][element_ind + 1], list_ind, element_ind + 1)
    13. heappush(min_heap, next_tuple)
    14. return merged
    15. #定义字符
    16. a = "H"
    17. b = "e"
    18. c = "l"
    19. d = "o"
    20. e = "W"
    21. f = "r"
    22. g = "d"
    23. lists = [[a, b, c], [c, d, e], [d, f, c, g]]
    24. print(mergeKLists(lists))

      该方法的空间复杂度是 O(n + m),其中 n 是列表的数量,m 是所有列表中的元素总数。

      因为只需要输出字符串 ,所以可以简化代码,改用for循环的方式:

    1. a = "H"
    2. b = "e"
    3. c = "l"
    4. d = "o"
    5. e = "W"
    6. f = "r"
    7. g = "d"
    8. k = [a, b, c, c, d, e, d, f, c, g]
    9. for i in range(1):
    10. for j in range(len(k)):
    11. print(k[j])

    这段代码的时间复杂度是 O(n),空间复杂度是 O(1),感觉还是有点问题,所以需要进一步优化,可以将字符组合在一起,使其变成字符串,然后使用 split() 方法将字符串分割成单词列表,再使用 map() 和 lambda 函数将每个单词的首字母大写,最后使用 join() 方法将单词列表组合成一个字符串,并用空格分隔:

    1. s = "hello world"
    2. words = s.split()
    3. capitalized_words = map(lambda x: x.capitalize(), words)
    4. capitalized_str = ' '.join(capitalized_words)
    5. print(capitalized_str)

     这段代码的时间复杂度是 O(k),空间复杂度是 O(k * l),还可以使用join函数再优化以下:

    1. chars = ['Hello', 'World']
    2. string = ' '.join(chars)
    3. print(string)

    这段代码的时间复杂度是 O(1),空间复杂度也是 O(1),这是突然有一个灵感,即使用格式化输出的方式,将"Hello"和"World"组合在一起输出:

    1. char1 = 'Hello '
    2. char2 = 'World'
    3. string = f"{char1}{char2}"
    4. print(string)

    这时时间复杂度和空间复杂度已经汗流浃背了,因为还可以再次优化:

    print("Hello World")

    最后在大力优化下,可以直接使用print()函数直接输出字符串"Hello World",非常的使用,非常的简洁。

  • 相关阅读:
    PPT导出PDF时保持图像高清的方法
    深度优先搜索
    STM32驱动步进电机
    腾讯开源业界首个云原生标准的一站式微服务管理框架Femas
    java-net-php-python-900jspm跳蚤市场网站管理系统开题ppt计算机毕业设计程序
    雨云OSS服务介绍和使用教程,以及Chevereto图床使用雨云OSS的教程
    c++20模块导入module
    基于行为透明性的RPKI撤销检测机制
    人生的B计划:构建“一个人”的商业模式
    【图像配准】基于SURF特征实现印刷体汉字配准附matlab代码
  • 原文地址:https://blog.csdn.net/m0_73500130/article/details/136120644