Python实现打印螺旋矩阵功能的方法


Posted in Python onNovember 21, 2017

本文实例讲述了Python实现打印螺旋矩阵功能的方法。分享给大家供大家参考,具体如下:

一、问题描述

输入N, 打印 N*N 螺旋矩阵

比如 N = 3,打印:
1 2 3
8 9 4
7 6 5

N = 4,打印:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

二、思路

常规法是不断的对数据边界进行判断会很复杂,不妨考虑通过递归的解决每一层的数字。

三、代码

#coding:utf-8
n = int(raw_input('>'))
#初始化数组
arr = [[0]*n for i in range(n)]
#递归解决
def dfs(arr, x, y, start, n):
  if n<=0:return 0
  if n==1:
    arr[x][y] = start
    return 0
  #up
  for i in range(n):
    arr[x][y+i] = start
    start += 1
  #right
  for i in range(n-1):
    arr[x+1+i][y+n-1] = start
    start += 1
  #down
  for i in range(n-1):
    arr[x+n-1][y+n-2-i] = start
    start += 1
  #left
  for i in range(n-2):
    arr[x+n-2-i][y] = start
    start += 1
  dfs(arr,x+1,y+1,start,n-2)
a = dfs(arr,0,0,1,n)
#格式化输出print
l = len(str(n*n))+1
format = ('%'+str(l)+'d')*n
for tmp in arr:
  print format%tuple(tmp)

运行结果:

Python实现打印螺旋矩阵功能的方法

Python实现打印螺旋矩阵功能的方法

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python实现发送email的几种常用方法
Aug 18 Python
python脚本设置超时机制系统时间的方法
Feb 21 Python
Python3实战之爬虫抓取网易云音乐的热门评论
Oct 09 Python
python3调用R的示例代码
Feb 23 Python
python对象与json相互转换的方法
May 07 Python
Django框架搭建的简易图书信息网站案例
May 25 Python
FFrpc python客户端lib使用解析
Aug 24 Python
为什么说python适合写爬虫
Jun 11 Python
python操作ini类型配置文件的实例教程
Oct 30 Python
python实现简单猜单词游戏
Dec 24 Python
python引入其他文件夹下的py文件具体方法
May 23 Python
Python中矩阵库Numpy基本操作详解
Nov 21 #Python
python GUI实例学习
Nov 21 #Python
Python实现判断一个字符串是否包含子串的方法总结
Nov 21 #Python
django中的setting最佳配置小结
Nov 21 #Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
Nov 21 #Python
详解supervisor使用教程
Nov 21 #Python
django模型层(model)进行建表、查询与删除的基础教程
Nov 21 #Python
You might like
使PHP自定义函数返回多个值
2006/11/26 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
PHP中使用break跳出多重循环代码实例
2015/01/21 PHP
PHP实现bitmap位图排序与求交集的方法
2016/07/28 PHP
PHP设计模式之原型模式定义与用法详解
2018/04/03 PHP
javascript 静态对象和构造函数的使用和公私问题
2010/03/02 Javascript
理解Javascript_05_原型继承原理
2010/10/13 Javascript
最简单的js图片切换效果实现代码
2011/09/24 Javascript
10个基于浏览器的JavaScript调试工具分享
2013/02/07 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
2014/05/07 Javascript
JQuery+EasyUI轻松实现步骤条效果
2016/02/22 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
2017/05/03 Javascript
bootstrap精简教程_动力节点Java学院整理
2017/07/14 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
浅谈vue-cli加载不到dev-server.js的解决办法
2017/11/24 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
JS点击动态添加标签、删除指定标签的代码
2018/04/18 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
2020/10/22 Javascript
JS实现百度搜索框
2021/02/25 Javascript
DJANGO-ALLAUTH社交用户系统的安装配置
2014/11/18 Python
Python中atexit模块的基本使用示例
2015/07/08 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
Django文件上传与下载(FileFlid)
2019/10/06 Python
如何解决tensorflow恢复模型的特定值时出错
2020/02/06 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
2020/02/10 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
幼儿园教师的自我评价范文
2014/09/17 职场文书
执法作风整顿剖析材料
2014/10/11 职场文书
2014年班级工作总结范文
2014/12/23 职场文书
文化大革命观后感
2015/06/17 职场文书
大学生受助感言
2015/08/01 职场文书
Pandas搭配lambda组合使用详解
2022/01/22 Python
python神经网络学习 使用Keras进行回归运算
2022/05/04 Python
Moment的feature导致线上bug解决分析
2022/09/23 Javascript