美文网首页
打印菱形

打印菱形

作者: 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