使用python 解ccf-csp 201503-1 图像旋转

图像旋转

问题描述
试题编号: 201503-1
试题名称: 图像旋转
时间限制: 5.0s
内存限制: 256.0MB
问题描述:
问题描述
  旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。
  计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。
输入格式
  输入的第一行包含两个整数 n, m,分别表示图像矩阵的行数和列数。
  接下来 n行每行包含 m个整数,表示输入的图像。
输出格式
  输出 m行,每行包含 n个整数,表示原始矩阵逆时针旋转90度后的矩阵。
样例输入
2 3
1 5 3
3 2 4
样例输出
3 4
5 2
1 3
评测用例规模与约定
  1 ≤ n, m ≤ 1,000,矩阵中的数都是不超过1000的非负整数。

问题分析: 此类问题不需要真正的把矩阵反转过来,只需要在输出时符合要求即可。那么回到正题,只需要看给出的例子,然后分析就可,看输出的例子,可以发现第一行输出的两个数字是输入例子的最后一列,也就是说此问题就像是栈,先进先出即可。

代码:

#n为nm
n=input().split()
#a为多维数组,取决于n,m
a=[]
for i in range(int(n[0])):
    #按行输入m
    a.append(input().split())
#用多重循环输出
for i in range(int(n[1])):
    for j in range(int(n[0])):
    	#pop()为栈的跳出
        print(a[j].pop(),end=' ')
    print()


结果:

提交编号 试题名称 编程语言 评测结果 时间使用 空间使用
1794793 门禁系统 python 正确 1.906s 45.42MB

此方法的时间复杂度过高,以后再优化。

你可能感兴趣的:(ccf-csp,python)