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标准库defaultdict模块使用示例
Apr 28 Python
Python获取linux主机ip的简单实现方法
Apr 18 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
Jun 14 Python
python装饰器实例大详解
Oct 25 Python
python3实现名片管理系统
Nov 29 Python
python的内存管理和垃圾回收机制详解
May 18 Python
wxpython绘制音频效果
Nov 18 Python
python两个_多个字典合并相加的实例代码
Dec 26 Python
python实现人机猜拳小游戏
Feb 03 Python
pytorch 使用加载训练好的模型做inference
Feb 20 Python
详解Python修复遥感影像条带的两种方式
Feb 23 Python
Python与C/C++的相互调用案例
Mar 04 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画图实例
2014/11/05 PHP
php中strtotime函数用法详解
2014/11/15 PHP
php设计模式之工厂模式用法经典实例分析
2019/09/20 PHP
css3实现背景模糊的三种方式
2021/03/09 HTML / CSS
jquery text,radio,checkbox,select操作实现代码
2009/07/09 Javascript
JQuery里选择超链接的实现代码
2011/05/22 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
2013/04/15 Javascript
ExtJs默认的字体大小改变的几种方法(自己整理)
2013/04/18 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
jQuery标签替换函数replaceWith()的使用例子
2014/08/28 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
2014/11/08 Javascript
Javascript中使用parseInt函数需要注意的问题
2015/04/02 Javascript
jQuery 遍历map()方法详解
2016/11/04 Javascript
微信小程序 支付简单实例及注意事项
2017/01/06 Javascript
layui导航栏实现代码
2017/05/19 Javascript
JavaScript函数、闭包、原型、面向对象学习笔记
2018/09/06 Javascript
浅谈微信小程序flex布局基础
2018/09/10 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
elementUI select组件value值注意事项详解
2019/05/29 Javascript
vue 的 solt 子组件过滤过程解析
2019/09/07 Javascript
Node.js设置定时任务之node-schedule模块的使用详解
2020/04/28 Javascript
js闭包和垃圾回收机制示例详解
2021/03/01 Javascript
Python实现ping指定IP的示例
2018/06/04 Python
python清除函数占用的内存方法
2018/06/25 Python
pycharm: 恢复(reset) 误删文件的方法
2018/10/22 Python
Python迭代器模块itertools使用原理解析
2019/12/11 Python
解决python3.x安装numpy成功但import出错的问题
2020/11/17 Python
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
什么是组件架构
2016/05/15 面试题
opencv实现图像几何变换
2021/03/24 Python
领导干部个人对照检查材料(群众路线)
2014/09/26 职场文书
2014年人事部工作总结
2014/12/03 职场文书
学生评语集锦
2015/01/04 职场文书
高中生个性发展自我评价
2015/03/09 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书