青训3_1110_01 构造特定数组的逆序拼接#  | 豆包MarsCode AI刷题

42 阅读2分钟

青训3_1110_01 构造特定数组的逆序拼接#  | 豆包MarsCode AI刷题 .md

青训3_1110_01 构造特定数组的逆序拼接 .md问题描述测试样例疑问1、看不懂题目:看懂了 。n数字减小,一直循环到1. 例如n为3,则从3->1,3->2,3->3进行2、实际为循环写法,比较简单。3、range区间:这里python的for 是左闭右开区间,range(1,4),是1到3.答案

问题描述

小U得到了一个数字n,他的任务是构造一个特定数组。这个数组的构造规则是:对于每个i1到n,将数字n到i逆序拼接,直到i等于n为止。最终,输出这个拼接后的数组。
​
例如,当n等于3时,拼接后的数组是 [3, 2, 1, 3, 2, 3]

测试样例

样例1:

输入:n = 3 输出:[3, 2, 1, 3, 2, 3]

样例2:

输入:n = 4 输出:[4, 3, 2, 1, 4, 3, 2, 4, 3, 4]

样例3:

输入:n = 5 输出:[5, 4, 3, 2, 1, 5, 4, 3, 2, 5, 4, 3, 5, 4, 5]

示例

def solution(n: int) -> list:
    # write code here
    return []
​
if __name__ == '__main__':
    print(solution(3) == [3, 2, 1, 3, 2, 3])
    print(solution(4) == [4, 3, 2, 1, 4, 3, 2, 4, 3, 4])
    print(solution(5) == [5, 4, 3, 2, 1, 5, 4, 3, 2, 5, 4, 3, 5, 4, 5])

疑问

1、看不懂题目:看懂了 。n数字减小,一直循环到1. 例如n为3,则从3->1,3->2,3->3进行
2、实际为循环写法,比较简单。
3、range区间:这里python的for 是左闭右开区间,range(1,4),是1到3.

答案

def solution(n: int) -> list:
    result=[]
    for i in range(1,n+1):
      for j in range(n,i-1,-1):
       result.append(j)
     
    return result
​
if __name__ == '__main__':
    print(solution(3) == [3, 2, 1, 3, 2, 3])
    print(solution(4) == [4, 3, 2, 1, 4, 3, 2, 4, 3, 4])
    print(solution(5) == [5, 4, 3, 2, 1, 5, 4, 3, 2, 5, 4, 3, 5, 4, 5])