欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python真題案例之蛇形數(shù)組詳解

 更新時(shí)間:2022年03月07日 15:38:25   作者:酷爾。  
這篇文章主要介紹了python實(shí)操案例練習(xí),本文給大家分享的案例中主要講解了蛇形數(shù)組,需要的小伙伴可以參考一下

問題描述??

輸入一個(gè)正整數(shù)n

在n*n的方陣內(nèi)填入1,2,3,4…n*n,要求填成蛇形。(回旋的向中間收斂)

樣例輸入:

4

樣例輸出:

不必嚴(yán)格按照格式輸出,

問題分析??

蛇形填數(shù),目的是為了考驗(yàn)我們對數(shù)組索引的熟悉情況,觀察可知需要從右上角開始遍歷 先向下等碰到了下限左轉(zhuǎn)然后向上然后右轉(zhuǎn),一直遍歷到最中心。這里需要對邊界進(jìn)行判斷 我們對邊界判斷的時(shí)候需要有一個(gè)緩沖空間也就是說先判斷下一位置再賦值。 (如果先賦值再判斷,想往回走的話很麻煩),還有一點(diǎn)就是定住二維數(shù)組的一行或一列 移動(dòng)另外的索引。由此我們可以寫出以下代碼。

代碼實(shí)現(xiàn)??

老規(guī)矩先上運(yùn)行結(jié)果:

有了上面的思路后我們還可以進(jìn)行逆時(shí)針的蛇形數(shù)組。

使用定一移一的思想我們還可以對數(shù)組進(jìn)行旋轉(zhuǎn)。

蛇形數(shù)組源碼

import sys


def sn1(n):
    arr=[]
    for i in range(n):
        arr.append([0]*n)

    row=0
    col=n-1
    arr[row][col]=1

    i=1
    while i<n*n:
        while row+1<n and (not arr[row+1][col]):
            arr[row+1][col]=i+1
            row+=1
            i+=1
        while col-1>-1 and (not arr[row][col-1]):
            arr[row][col-1]=i+1
            col-=1
            i+=1
        while row-1>-1 and (not arr[row-1][col]):
            arr[row-1][col]=i+1
            row-=1
            i+=1
        while col+1<n and (not arr[row][col+1]):
            arr[row][col+1]=i+1
            col+=1
            i+=1
        

    for i in range(n):
        flag=True
        for j in range(n):
            if flag:
                print(arr[i][j],end="")
                flag=False
            else:
                print("\t",arr[i][j],end="",sep="")
        print()

def sn2(n):
    arr=[]
    for i in range(n):
        arr.append([0]*n)

    row=0
    col=n-1
    arr[row][col]=i=1
    while i<n*n:
        while(col-1>-1 and not(arr[row][col-1])):
            arr[row][col-1]=i+1
            i+=1
            col-=1
        while(row+1<n and not(arr[row+1][col])):
            arr[row+1][col]=i+1
            i+=1
            row+=1
        while(col+1<n and not(arr[row][col+1])):
            arr[row][col+1]=i+1
            i+=1
            col+=1
        while(row-1>-1 and not(arr[row-1][col])):
            arr[row-1][col]=i+1
            i+=1
            row-=1
    for i in range(n):
        flag=True
        for j in range(n):
            if flag:
                print(arr[i][j],end="")
                flag=False
            else:
                print("\t",arr[i][j],end="",sep="")
        print()

    


if __name__=="__main__":
    n=int(input())
    print("蛇形數(shù)組如下(順時(shí)針):")
    sn1(n)
    print("蛇形數(shù)組如下(逆時(shí)針):")
    sn2(n)

旋轉(zhuǎn)數(shù)組源碼

'''
大家都學(xué)習(xí)過矩陣,今天呢咱們將n*n類型的字符矩陣進(jìn)行向左的90°旋轉(zhuǎn)
'''
#生成全為零的矩陣
arr=[]
n=int(input())
for i in range(n):
    arr.append([0]*n)

#蛇形矩陣

row=0
col=n-1
arr[row][col]=i=1
while i<n*n:
    while row+1<n and not arr[row+1][col]:
        arr[row+1][col]=i+1
        i+=1
        row+=1
    while col-1>=0 and not arr[row][col-1]:
        arr[row][col-1]=i+1
        i+=1
        col-=1
    while row-1>=0 and not arr[row-1][col]:
        arr[row-1][col]=i+1
        i+=1
        row-=1
    while col+1<n and not arr[row][col+1]:
        arr[row][col+1]=i+1
        i+=1
        col+=1
print("旋轉(zhuǎn)前如下:")
for temp in arr:
    print(temp)

print()

print("旋轉(zhuǎn)后如下(旋轉(zhuǎn)90°):")
for i in range(4):
    flag=True
    for j in range(4):
        if flag:
            print(arr[j][3-i],end="")
            flag=False
        else:
            print(" ",arr[j][3-i],end="")
    print()

print("旋轉(zhuǎn)后如下(旋轉(zhuǎn)180°):")
for i in range(4):
    flag=True
    for j in range(4):
        if flag:
            print(arr[3-i][3-j],end="")
            flag=False
        else:
            print(" ",arr[3-i][3-j],end="")
    print()

到此這篇關(guān)于Python真題案例之蛇形數(shù)組詳解的文章就介紹到這了,更多相關(guān)Python 蛇形數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python在windows調(diào)用svn-pysvn的實(shí)現(xiàn)

    python在windows調(diào)用svn-pysvn的實(shí)現(xiàn)

    本文主要介紹了python在windows調(diào)用svn-pysvn的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • pycharm的debug調(diào)試以及異常,Python中錯(cuò)誤的處理過程

    pycharm的debug調(diào)試以及異常,Python中錯(cuò)誤的處理過程

    這篇文章主要介紹了pycharm的debug調(diào)試以及異常,Python中錯(cuò)誤的處理過程,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • PyTorch和Keras計(jì)算模型參數(shù)的例子

    PyTorch和Keras計(jì)算模型參數(shù)的例子

    今天小編就為大家分享一篇PyTorch和Keras計(jì)算模型參數(shù)的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python開發(fā)寶典CSV JSON數(shù)據(jù)處理技巧詳解

    Python開發(fā)寶典CSV JSON數(shù)據(jù)處理技巧詳解

    在Python中處理CSV和JSON數(shù)據(jù)時(shí),需要深入了解這兩種數(shù)據(jù)格式的讀取、寫入、處理和轉(zhuǎn)換方法,下面將詳細(xì)介紹如何在Python中處理CSV和JSON數(shù)據(jù),并提供一些示例和最佳實(shí)踐
    2023-11-11
  • Matplotlib繪圖基礎(chǔ)之刻度詳解

    Matplotlib繪圖基礎(chǔ)之刻度詳解

    Matplotlib中刻度是用于在繪圖中表示數(shù)據(jù)大小的工具,通常以整數(shù)或小數(shù)表示,具體取決于坐標(biāo)軸的類型和限制,下面就為大家介紹一下Matplotlib中刻度是具體設(shè)置與使用吧
    2023-07-07
  • 一文帶你了解Python中Scikit-learn庫的使用

    一文帶你了解Python中Scikit-learn庫的使用

    Scikit-learn是Python的一個(gè)開源機(jī)器學(xué)習(xí)庫,它支持監(jiān)督和無監(jiān)督學(xué)習(xí),本文主要來深入探討一下Scikit-learn的更高級的特性,感興趣的小伙伴可以了解下
    2023-07-07
  • python查找重復(fù)圖片并刪除(圖片去重)

    python查找重復(fù)圖片并刪除(圖片去重)

    這篇文章主要為大家詳細(xì)介紹了python查找重復(fù)圖片并刪除,識(shí)別不同尺寸大小一致的圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • python使用calendar輸出指定年份全年日歷的方法

    python使用calendar輸出指定年份全年日歷的方法

    這篇文章主要介紹了python使用calendar輸出指定年份全年日歷的方法,涉及Python使用calendar模塊操作日期的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • Python GUI庫PyQt5樣式QSS子控件介紹

    Python GUI庫PyQt5樣式QSS子控件介紹

    這篇文章主要介紹了Python GUI庫PyQt5樣式QSS子控件介紹,需要的朋友可以參考下
    2020-02-02
  • 使用numpy對數(shù)組求平均時(shí)如何忽略nan值

    使用numpy對數(shù)組求平均時(shí)如何忽略nan值

    這篇文章主要介紹了使用numpy對數(shù)組求平均時(shí)如何忽略nan值,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02

最新評論