美文网首页
打印菱形

打印菱形

作者: Dreamsky_起航 | 来源:发表于2020-05-28 17:05 被阅读0次

给定一个奇数n,打印实心的菱形
示例:

输入: n = 3

输出: n = 3的菱形.png

输入:n = 5

输出: n = 5的菱形.png

来源:
相关企业:

公司 出现时间
快手 2020.04

解法:双循环
时间复杂度:O(n)
空间复杂度:O(1)
思路:将菱形拆分为上下两个三角形,分别进行打印:

  • 上方三角形:因只需输出奇数个数的三角形,循环使用切片方式,只循环奇数对应的循环,每行对应的空格个数space_count(n - i - 1) // 2;星号数量star_counti + 1
  • 下方三角形:只需输出n//2行即可,每行空格个数space_counti + 1;星号数量star_countn - 2 * (i + 1)
    代码:
 def printDiamond(self, n: int) -> void:
        for i in range(n)[0: n: 2]:
          space_count, star_count = (n - i - 1) // 2, i + 1
          print(' ' * space_count + '*' * star_count)

        for i in range(n // 2):
            space_count, star_count = i + 1, n - 2 * (i + 1)
            print(' ' * space_count + '*' * star_count)

相关文章

网友评论

      本文标题:打印菱形

      本文链接:https://www.haomeiwen.com/subject/bnmaahtx.html