青训3_1110_01 构造特定数组的逆序拼接 .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,他的任务是构造一个特定数组。这个数组的构造规则是:对于每个i从1到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 herereturn []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 resultif __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])