Python 旋转打印各种矩形的方法


Posted in Python onJuly 09, 2019

打印旋转矩阵应该是很经典的算法问题了。

题目描述如下:

给定一个m * n要素的矩阵。按照螺旋顺序,返回该矩阵的所有要素。

思路:1,先定义矩阵的左上和右下的坐标,然后通过两个坐标来打印这一圈矩阵;

2,将左上的坐标下右下移动,右下的坐标向左上移动,来缩小打印圈,进行下一圈矩阵的打印;

3,一直缩小打印直到结束。

代码:

def print_circle(matrix,up_hang,up_lie,down_hang,down_lie):
  result=[]
  
  if up_lie==down_hang and down_hang==down_lie: # 若只有一个元素
    result.append(matrix[up_hang][up_lie])
  elif up_lie==down_hang or up_lie==down_lie:  #若只有一行或一列元素
    if up_lie==down_hang:
      while up_lie <= down_lie:
        result.append(matrix[up_hang][up_lie])
        up_lie+=1
    elif up_lie==down_lie:
      while up_hang <=down_hang:
        result.append(matrix[up_hang][up_lie])
        up_hang+=1
# return result    #注意对齐方式,其决定了作用的区间范围,很关键    
    return result   
  i=up_hang
  j=up_lie
  while j<down_lie:
    result.append(matrix[i][j])
    j+=1
  while i<down_hang:
    result.append(matrix[i][j])
    i+=1
  while j>up_lie:
    result.append(matrix[i][j])
    j-=1
  while i>up_hang:
    result.append(matrix[i][j])
    i-=1
  return result

#matrix=[[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]
#matrix=[[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25]]
matrix=[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]
#matrix=[[1,2,3],[4,5,6],[7,8,9]]
#matrix=[[1,2],[3,4]]
re_mat=[]
up_hang=0
up_lie=0
down_hang=3
down_lie=3
if down_hang>down_lie:
  flag=down_lie
else:
  flag=down_hang
while flag!=0:       #flag决定了一个矩阵需要打印多少圈
  temp=print_circle(matrix,up_hang,up_lie,down_hang,down_lie)
  re_mat.extend(temp)
  up_hang+=1
  up_lie+=1
  down_hang-=1
  down_lie-=1
  flag=flag/2
print(re_mat)

总结:python对于代码的对齐方式要求的比较严格,对齐方式直接决定了函数或者判断条件的作用域,要重视啊。

以上这篇Python 旋转打印各种矩形的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python django集成cas验证系统
Jul 14 Python
微信 用脚本查看是否被微信好友删除
Oct 28 Python
解决python nohup linux 后台运行输出的问题
May 11 Python
python topN 取最大的N个数或最小的N个数方法
Jun 04 Python
flask入门之文件上传与邮件发送示例
Jul 18 Python
Python向excel中写入数据的方法
May 05 Python
Python列表对象实现原理详解
Jul 01 Python
python提取xml里面的链接源码详解
Oct 15 Python
python 用 xlwings 库 生成图表的操作方法
Dec 22 Python
用python写爬虫简单吗
Jul 28 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
Nov 24 Python
python 模拟登录B站的示例代码
Dec 15 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
Jul 09 #Python
python下的opencv画矩形和文字注释的实现方法
Jul 09 #Python
Python3 执行系统命令并获取实时回显功能
Jul 09 #Python
利用python开发app实战的方法
Jul 09 #Python
python设置环境变量的作用和实例
Jul 09 #Python
python版百度语音识别功能
Jul 09 #Python
利用Python实现Shp格式向GeoJSON的转换方法
Jul 09 #Python
You might like
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
2020/04/23 PHP
JQuery 操作Javascript对象和数组的工具函数小结
2010/01/22 Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
JS给swf传参数的实现方法
2016/09/13 Javascript
vue2.0+webpack环境的构造过程
2016/11/08 Javascript
详解Node全局变量global模块
2017/09/28 Javascript
Java设计中的Builder模式的介绍
2018/03/22 Javascript
AngularJs分页插件使用详解
2018/06/30 Javascript
vue后台管理之动态加载路由的方法
2018/08/13 Javascript
[46:27]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第一局
2016/03/02 DOTA
[01:21:07]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
详解Python的Django框架中的模版相关知识
2015/07/15 Python
python中函数默认值使用注意点详解
2016/06/01 Python
python中正则的使用指南
2016/12/04 Python
python itchat实现微信好友头像拼接图的示例代码
2017/08/14 Python
django框架自定义用户表操作示例
2018/08/07 Python
Ubuntu下Python2与Python3的共存问题
2018/10/31 Python
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
python3+django2开发一个简单的人员管理系统过程详解
2019/07/23 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
2019/12/04 Python
PyCharm 2019.3发布增加了新功能一览
2019/12/08 Python
python3正则模块re的使用方法详解
2020/02/11 Python
Python selenium文件上传下载功能代码实例
2020/04/13 Python
经验丰富程序员才知道的8种高级Python技巧
2020/07/27 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
Revolution Beauty美国官网:英国知名化妆品网站
2018/07/23 全球购物
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2015/09/07 面试题
英文版销售经理个人求职信
2013/11/20 职场文书
yy生日主持词
2014/03/20 职场文书
活动宣传策划方案
2014/05/23 职场文书
火烧圆明园的观后感
2015/06/03 职场文书
班主任班级管理心得体会
2016/01/07 职场文书
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python