• 翻转矩阵


    输入格式

    输入第一行包括由空格分开的整数 M,N,T(0 < N,M < 200)M,N,T(0<N,M<200),TT 的值为 00 或 11。其中 MM 和 NN 分别表示待处理矩阵的行数与列数,TT 为 00 时表示左右翻转,为 11 时表示上下翻转。

    之后的 MM 行,每行包括由空格分隔的 NN 个整数,依次为输入矩阵的每一行的数据。

    输出格式

    输出包括 MM 行 NN 列,每个数字之间用一个空格分隔,每一行行末均有一个空格,表示的是按照要求翻转后的矩阵。

    样例输入

    4 4 1
    1 2 3 4
    5 6 7 8
    9 0 1 2
    3 4 5 6

    样例输出

    3 4 5 6 
    9 0 1 2 
    5 6 7 8 
    1 2 3 4

    这是在计蒜客上看到的题目,在网上看了一些别人的解题思路,分为以下几个步骤:

    1. 先是要读取矩阵的行列,还有翻转方向
    2. 然后创建对应的矩阵
    3. 将给出的值正确的写入到矩阵里
    4. 根据要求翻转矩阵
    5. 按要求输出矩阵

    下面直接贴出代码:

     1 # 读取矩阵行列 翻转方向
     2 info = input()
     3 row = int(info.split(" ")[0])    # 行
     4 line = int(info.split(" ")[1])
     5 direction = int(info.split(" ")[2])
     6 
     7 # 创建对应行列矩阵
     8 matrix = [[0]*line for i in range(row)]
     9 
    10 # 读取矩阵内容
    11 
    12 for r in range(row):
    13     read_row = input()
    14     read_row = read_row.split(" ")
    15     for l in range(line):
    16         matrix[r][l] = int(read_row[l])
    17         
    18 
    19 # 根据要求翻转矩阵
    20 if direction == 1:
    21     matrix.reverse()
    22 else:
    23     [i.reverse() for i in matrix]
    24     
    25 # 打印矩阵
    26 for i in matrix:
    27     for t in i:
    28         print(t, end=" ")
    29     print("")

  • 相关阅读:
    SGU 242. Student's Morning( 网络流 )
    8.23单词
    bzoj1083:繁忙的城市
    求连通分量
    bzoj2761:不重复数字
    bzoj1207:打鼹鼠
    bzoj2748:音量调节
    bzoj1050:旅行comf
    bzoj1996:合唱队
    羞耻羞耻羞耻!!!
  • 原文地址:https://www.cnblogs.com/tingshuo123/p/6650880.html
Copyright © 2020-2023  润新知