我有比“ arr + arr [::-1] [1:]”更好的方法吗?

时间:2019-07-29 10:04:07

标签: python arrays list sorting

我刚刚解决了任务 在密码战中“给我一颗钻石”。 https://www.codewars.com/kata/5503013e34137eeeaa001648 我使用创建数组中的金字塔 星号(*),然后展开 按金字塔的反向版本排列,不包含第一个元素。 我有没有比金字塔+金字塔[::-1] [1:]更好的方法?

    #               *
    #   *          ***
    #  ***   -->  *****
    # *****        ***
    #               *
    pyramid = ['  *\n',' ***\n','*****\n']
    return pyramid + pyramid[::-1][1:]

1 个答案:

答案 0 :(得分:0)

这是一个非常简单的解决方案:

num = int(input("enter size of you diamond:"))

for i in range(1, num+1):
  i = i - (num//2 +1)
  if i < 0:
    i = -i
  print(" " * i + "*" * (num - i*2) + " "*i)

输出:

  *  
 *** 
*****
 *** 
  *