码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 蓝桥杯:翻转旋转变换(矩阵旋转)


    题目描述:

    问题描述

      现在有一张n行m列的由”o”和”*”字符组成的图案,需要你做若干次翻转和旋转操作,并输出最后的结果.

    输入格式

      第一行两个整数n和m
      接下来n行,每行m个字符,表示待变换的图案
      下一行一个整数p表示操作次数
      接下来p行,每行一个整数,表示操作.(1代表水平翻转,2代表垂直翻转,3代表顺时针转90°,

    4代表逆时针转90°)

    输出格式

      输出n行m列(或m行n列)字符,表示变换后的图案

    样例输入

    4 5
    **ooo
    **o**
    **oo*
    **o**
    2
    2
    3

    样例输出

    ****
    ****
    oooo
    o*o*
    o***

    数据规模和约定

      1<=n,m<=100
      0<=p<=1000000

    分析: 

    这题属于入门题的难度了 相信对于前两个操作来说 大家都没有问题 正常反转即可

    问题是 顺时针旋转90度和逆时针旋转90度该怎么做呢

    这里Python提供了很好的一个函数——zip

    实现矩阵旋转的方法可以参考:Python :矩阵旋转_KS想去海底的博客-CSDN博客_python矩阵旋转

    代码实现: 

    1. def check1(graph) :
    2. for i in range(len(graph)) :
    3. graph[i] = graph[i][::-1]
    4. return graph
    5. def check2(graph) :
    6. graph = graph[::-1]
    7. return graph
    8. def check3(graph) :
    9. graph = graph[::-1]
    10. graph = list(map(list,zip(*graph)))
    11. return graph
    12. def check4(graph) :
    13. graph = list(map(list,zip(*graph)))
    14. graph = graph[::-1]
    15. return graph
    16. n,m = map(int,input().split())
    17. Map = []
    18. for i in range(n) : Map.append(list(input()))
    19. p = int(input())
    20. for _ in range(p) :
    21. x = int(input())
    22. if x == 1 :
    23. Map = check1(Map)
    24. elif x == 2 :
    25. Map = check2(Map)
    26. elif x == 3 :
    27. Map = check3(Map)
    28. else :
    29. Map = check4(Map)
    30. for i in range(len(Map)) :
    31. for j in range(len(Map[i])) :
    32. print(Map[i][j],end='')
    33. print()

     

     

  • 相关阅读:
    Nature Microbiology | 可感染阿斯加德古菌的六种深海沉积物中的病毒基因组
    多线程【thread】创建【1】
    机械臂运动控制,通讯的解包->运动控制->数据封包上报过程
    【网安别学成开发】之——python篇
    Android 蓝牙 ble 随机地址深层次分析
    【亲测有效】3分钟 从零安装高匿名http协议带账号密码的代理服务 步骤超简单 仅限用于学习交流使用 勿用于其他用途
    【案例分享】H3C设备配置端口镜像
    vulhub中GitLab 任意文件读取漏洞复现(CVE-2016-9086)
    SpringBoot应用程序部署生产环境需要设置哪些参数?
    【Echarts】入门
  • 原文地址:https://blog.csdn.net/m0_54689021/article/details/125432894
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号