【python】二维数组的旋转遍历?

作者: 阿牛02 | 来源:发表于2019-07-26 08:29 被阅读0次

题目:假定有一个二维数组,要求将数组中的元素以顺时针的旋转方式打印出来。实现一个函数,使得数组的元素能按照顺时针方向打印。

分析:假定有4个箭头,分别称为top,right,bottom,left。top指向最顶行,right指向最右边一列,bottom指向最底边一行,left指向最左边一列。先把top指向的行打印出来,接着把right指向的列打印出来,然后把bottom指向的行打印出来,最后把left指向的列打印出来。然后把外围打印完毕后,把top箭头向下挪动一个位置,right箭头向左挪动一个位置,bottom向上挪动一个位置,left向右挪动一个位置。

code:

def spiralPrint(top, right, bottom, left):

    while top <= bottom and left <= right:

        # 先打印top指向的行

        for i in range(left, right + 1):

            print(array[top][i])

        # 打印right指向的行

        for i in range(top + 1, bottom + 1):

            print(array[i][right])

        # 打印bottom指向的行

        for i in range(bottom - 1, left - 1, -1):

            print(array[bottom][i])

        for i in range(bottom - 1, top, -1):

            print(array[i][left])

        top += 1

        right -= 1

        bottom -= 1

        left += 1

if __name__ == "__main__":

    n = 5

    array = [[0] * n for i in range(n)]

    for i in range(n):

        for j in range(n):

            array[i][j] = i * n + j + 1

        print(array[i])

    top = 0

    right = n - 1

    bottom = n - 1

    left = 0

    spiralPrint(top, right, bottom, left)

相关文章

  • 【python】二维数组的旋转遍历?

    题目:假定有一个二维数组,要求将数组中的元素以顺时针的旋转方式打印出来。实现一个函数,使得数组的元素能按照顺时针方...

  • 二维数组的遍历

    二维数组的遍历 * 二维数组中,存储了4个一维数组,每个一维数组的长度不同 * 遍历:for循环,遍历二维...

  • vector遍历一个二维数组2018-10-14

    如何通过stl中vector遍历一个二维数组? vector中二维数组的遍历方法: 1、迭代器遍历 void re...

  • Day08

    二维数组 二维数组格式 二维数组初始化 二维数组的遍历 二维数组内存存储细节 二维数组与函数注意点: 主要是看函数...

  • Java之三种遍历、查看数组的方式

    1. for循环遍历 这是最基本的遍历方式通常遍历数组都是使用for循环来实现。遍历一维数组很简单,遍历二维数组需...

  • 数组相关

    1.二维数组遍历

  • go 语言数组

    go 语言数组 1. 数组定义 数组定义 使用 ":=" 符号定义数组 定义二维数组 2. 数组遍历 数组遍历 3...

  • 数组_for

    使用范围for进行遍历二维数组: 使用指针for遍历

  • Java 数组的基本操作

    1.遍历数组 遍历数组就是获取数组中的每个元素。通常遍历数组都是使用for循环来实现。下面是遍历一个二维数组 2....

  • 2018-12-02

    Java二维数组的遍历及其转置详解 1.首先我们需要定义一个二维数组 2.对数组进行遍历 3.对数组进行转置操作 ...

网友评论

    本文标题:【python】二维数组的旋转遍历?

    本文链接:https://www.haomeiwen.com/subject/hmifrctx.html