天天蓝海

  • 首页
  • Python学习
    • HackRank挑战
  • 纪念墙
天天蓝海
学习、记录
  1. 首页
  2. Python学习
  3. HackRank挑战
  4. 正文

【Python学习】-Hackrank挑战-入门-打印

2025年2月21日 195点热度 0人点赞 0条评论

题目:打印-print


解题方案:

包含来自 STDIN的代码存根将读取一个整数n。

不使用任何字符串方法,尝试打印以下内容:

123…n

注意 ”…" 表示其间的连续值。

解题代码:

不使用字符串拼接,使用内置函数map()及匿名函数lamba:

n = int(input())
list(map(lambda i: print(i, end=''), [i for i in range(1, n+1)]))

使用字符串拼接优化代码:

  1. 循环范围优化 直接生成1到n的序列
  2. 内存效率提升 使用生成器表达式 str(i) for i in range(...) 替代字符串累加:
    • 避免O(n²)时间复杂度:字符串拼接每次都会创建新对象
    • 内存占用减少:生成器按需产生元素,不预先生成完整列表
  3. 函数式编程实践 ''.join() 方法专门用于可迭代对象拼接,比手动拼接快约2-5倍(Python 3.10实测)
  4. 边界条件自动处理 当n=0时,range(1, 1) 自动生成空序列
n = int(input())
print(''.join(str(i) for i in range(1, n+1)))
标签: HackRank Challenge
最后更新:2025年2月26日

timmyblue

我们没有说再见,只是很默契的没有打扰。

点赞
< 上一篇
下一篇 >

归档

  • 2025 年 3 月
  • 2025 年 2 月

分类

  • HackRank挑战
  • Python学习

Copyright © 天天蓝海 All Rights Reserved.

苏ICP备2025161349号