python实现顺时针打印矩阵


Posted in Python onMarch 02, 2019

面试题之顺时针打印矩阵,Python实现,供大家参考,具体内容如下

问题描述:

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,输入如下矩阵:

 python实现顺时针打印矩阵

则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

思路:每次打印并删除矩阵的第一行,然后将矩阵逆时针翻转90度,直至打印出全部结果

具体代码实现如下:

# coding:utf-8

class Solution(object):
  def printMatrix(self, matrix):
    # 打印矩阵
    result = []
    while matrix:
      result += matrix.pop(0)
      if matrix:
        matrix = self.rotate(matrix)
    return result

  def rotate(self, matrix):
    # 逆时针旋转矩阵
    row = len(matrix)
    col = len(matrix[0])
    # 存放旋转后的矩阵
    new_matrix = []
    # 行列调换
    for i in range(col):
      new_line = []
      for j in range(row):
        new_line.append(matrix[j][col-1-i])
      new_matrix.append(new_line)
    return new_matrix

if __name__ == '__main__':
  # 测试代码
  matrix = [
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12],
    [13,14,15,16]
  ]
  solution = Solution()
  result = solution.printMatrix(matrix)
  print(result)

如有错误,欢迎指正和交流。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python time模块用法实例详解
Sep 11 Python
详解Python3中的Sequence type的使用
Aug 01 Python
Python实现的简单模板引擎功能示例
Sep 02 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
Jul 04 Python
PyCharm中代码字体大小调整方法
Jul 29 Python
python读写csv文件并增加行列的实例代码
Aug 01 Python
python 用户交互输入input的4种用法详解
Sep 24 Python
Python模拟登录之滑块验证码的破解(实例代码)
Nov 18 Python
python自动化unittest yaml使用过程解析
Feb 03 Python
Python实现在Windows平台修改文件属性
Mar 05 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
May 20 Python
python小型的音频操作库mp3Play
Apr 24 Python
python实现二维数组的对角线遍历
Mar 02 #Python
python实现矩阵打印
Mar 02 #Python
python实现杨氏矩阵查找
Mar 02 #Python
Python3.4学习笔记之列表、数组操作示例
Mar 01 #Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
Mar 01 #Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
Mar 01 #Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
Mar 01 #Python
You might like
PHP批量采集下载美女图片的实现代码
2013/06/03 PHP
php实现的数字验证码及数字运算验证码
2015/07/30 PHP
Zend Studio使用技巧两则
2016/04/01 PHP
php实现xml转换数组的方法示例
2017/02/03 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
js 页面执行时间计算代码
2009/03/04 Javascript
javascript间隔定时器(延时定时器)学习 间隔调用和延时调用
2014/01/13 Javascript
js实现屏幕自适应局部代码分享
2015/01/30 Javascript
jQuery实现简单的文件上传进度条效果
2020/03/26 Javascript
JS中script标签defer和async属性的区别详解
2016/08/12 Javascript
微信小程序 实现拖拽事件监听实例详解
2016/11/16 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
2019/01/15 Javascript
[04:31]2016国际邀请赛中国区预选赛妖精采访
2016/06/27 DOTA
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python ValueError: invalid literal for int() with base 10 实用解决方法
2015/06/21 Python
深入学习Python中的上下文管理器与else块
2017/08/27 Python
python 内置模块详解
2019/01/01 Python
Pyinstaller打包.py生成.exe的方法和报错总结
2019/04/02 Python
详解pyppeteer(python版puppeteer)基本使用
2019/06/12 Python
利用python-pypcap抓取带VLAN标签的数据包方法
2019/07/23 Python
python Qt5实现窗体跟踪鼠标移动
2019/12/13 Python
python同时遍历两个list用法说明
2020/05/02 Python
keras自动编码器实现系列之卷积自动编码器操作
2020/07/03 Python
澳大利亚汽车零部件、音响及配件超市:Automotive Superstore
2018/06/19 全球购物
高级3D打印市场:Gambody
2019/12/26 全球购物
汉语专业应届生求职信
2013/10/01 职场文书
大学生写自荐信的技巧
2014/01/08 职场文书
班级心理活动总结
2014/07/04 职场文书
工作疏忽、懈怠的检讨书
2014/09/11 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
大学生求职自荐信范文
2015/03/04 职场文书
小学教师党员承诺书
2015/04/27 职场文书
nginx 防盗链防爬虫配置详解
2021/03/31 Servers
Django实现在线无水印抖音视频下载(附源码及地址)
2021/05/06 Python