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 相关文章推荐
wxpython 学习笔记 第一天
Mar 16 Python
python基础教程之简单入门说明(变量和控制语言使用方法)
Mar 25 Python
python通过shutil实现快速文件复制的方法
Mar 14 Python
Python实现删除列表中满足一定条件的元素示例
Jun 12 Python
分享几道你可能遇到的python面试题
Jul 24 Python
Python3.X 线程中信号量的使用方法示例
Jul 24 Python
解决Python pandas plot输出图形中显示中文乱码问题
Dec 12 Python
对python中的*args与**kwgs的含义与作用详解
Aug 28 Python
给我一面国旗 python帮你实现
Sep 30 Python
Python urllib.request对象案例解析
May 11 Python
Python基于traceback模块获取异常信息
Jul 23 Python
Python实现列表索引批量删除的5种方法
Nov 16 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 addslashes()与addclashes()函数的区别和比较
2013/06/24 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
Laravel5.1 框架路由基础详解
2020/01/04 PHP
jQuery formValidator表单验证插件开源了 含API帮助、源码、示例
2008/08/14 Javascript
js身份证验证超强脚本
2008/10/26 Javascript
js模拟select下拉菜单控件的代码
2013/05/08 Javascript
js动态创建、删除表格示例代码
2013/08/07 Javascript
AngularJS入门教程之控制器详解
2016/07/27 Javascript
微信小程序开发之map地图实现教程
2017/06/08 Javascript
Angular X中使用ngrx的方法详解(附源码)
2017/07/10 Javascript
最基础的vue.js双向绑定操作
2017/08/23 Javascript
Nodejs模块载入运行原理
2018/02/23 NodeJs
node.js通过axios实现网络请求的方法
2018/03/05 Javascript
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
python实现迭代法求方程组的根过程解析
2019/11/25 Javascript
js实现计算器功能
2020/08/10 Javascript
[02:40]DOTA2英雄基础教程 巨牙海民
2013/12/23 DOTA
[53:15]Mineski vs iG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[01:00:13]完美世界DOTA2联赛 LBZS vs Forest 第一场 11.07
2020/11/09 DOTA
Python与Redis的连接教程
2015/04/22 Python
Python中有趣在__call__函数
2015/06/21 Python
详解Python的Django框架中inclusion_tag的使用
2015/07/21 Python
Python中的time模块与datetime模块用法总结
2016/06/30 Python
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
2018/01/07 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
2020/03/25 Python
西海岸男士和男童服装:Johnnie-O
2018/03/15 全球购物
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
商业房地产广告语
2014/03/13 职场文书
自我推荐信格式模板
2015/03/24 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
python使用openpyxl库读写Excel表格的方法(增删改查操作)
2021/05/02 Python
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL
MySQL插入数据与查询数据
2022/03/25 MySQL
Spring Data JPA框架Repository自定义实现
2022/04/28 Java/Android
详解Mysql事务并发(脏读、不可重复读、幻读)
2022/04/29 MySQL