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实现忽略大小写对字符串列表排序的方法
Sep 25 Python
python中使用xlrd、xlwt操作excel表格详解
Jan 29 Python
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
python数字图像处理之高级滤波代码详解
Nov 23 Python
Python通过OpenCV的findContours获取轮廓并切割实例
Jan 05 Python
python 将大文件切分为多个小文件的实例
Jan 14 Python
python实现字符串加密成纯数字
Mar 19 Python
python中tkinter的应用:修改字体的实例讲解
Jul 17 Python
用Python将Excel数据导入到SQL Server的例子
Aug 24 Python
Python中的With语句的使用及原理
Jul 29 Python
python线程池 ThreadPoolExecutor 的用法示例
Oct 10 Python
Python pygame实现中国象棋单机版源码
Jun 20 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
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
2015/05/12 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
菜鸟javascript基础资料整理3 正则
2010/12/06 Javascript
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
2011/07/10 Javascript
使用js+jquery实现无限极联动
2013/05/23 Javascript
深入理解JavaScript高级之词法作用域和作用域链
2013/12/10 Javascript
在javascript中执行任意html代码的方法示例解读
2013/12/25 Javascript
JSON字符串转换JSONObject和JSONArray的方法
2016/06/03 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
2017/07/05 Javascript
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
2019/01/18 Javascript
javascript实现雪花飘落效果
2020/08/19 Javascript
JS代码实现页面切换效果
2021/01/10 Javascript
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
2016/01/20 Python
Python实现Kmeans聚类算法
2020/06/10 Python
python用插值法绘制平滑曲线
2021/02/19 Python
在Python中居然可以定义两个同名通参数的函数
2019/01/31 Python
使用PyQt4 设置TextEdit背景的方法
2019/06/14 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
使用python实现多维数据降维操作
2020/02/24 Python
Python使用内置函数setattr设置对象的属性值
2020/10/16 Python
HTML5本地存储之IndexedDB
2017/06/16 HTML / CSS
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
某公司C#程序员面试题笔试题
2014/05/26 面试题
建筑自我鉴定
2013/10/19 职场文书
航空大学应届生求职信
2013/11/10 职场文书
2014年迎新年联欢会活动策划方案
2014/02/26 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
法人授权委托书样本
2014/09/19 职场文书
试用期工作表现自我评价
2015/03/06 职场文书
SQLServer2019 数据库环境搭建与使用的实现
2021/04/08 SQL Server
JS Canvas接口和动画效果大全
2021/04/29 Javascript