最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

問題描述??

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

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

樣例輸入:

4

樣例輸出:

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

問題分析??

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

代碼實現(xiàn)??

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

有了上面的思路后我們還可以進(jìn)行逆時針的蛇形數(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ù)組如下(順時針):")
    sn1(n)
    print("蛇形數(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運維自動化之nginx配置文件對比操作示例

    Python運維自動化之nginx配置文件對比操作示例

    這篇文章主要介紹了Python運維自動化之nginx配置文件對比操作,涉及Python針對文件的讀取、遍歷、比較進(jìn)而達(dá)到差異對比的相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • python調(diào)用騰訊云實名認(rèn)證接口辨別身份證真假

    python調(diào)用騰訊云實名認(rèn)證接口辨別身份證真假

    這篇文章主要為大家介紹了python辨別身份真假之騰訊云身份證實名認(rèn)證接口,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Python利用機器學(xué)習(xí)算法實現(xiàn)垃圾郵件的識別

    Python利用機器學(xué)習(xí)算法實現(xiàn)垃圾郵件的識別

    今天教大家利用簡單的機器學(xué)習(xí)算法實現(xiàn)垃圾郵件識別,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Python爬蟲進(jìn)階之爬取某視頻并下載的實現(xiàn)

    Python爬蟲進(jìn)階之爬取某視頻并下載的實現(xiàn)

    這篇文章主要介紹了Python爬蟲進(jìn)階之爬取某視頻并下載的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 詳解Python3序列賦值、序列解包

    詳解Python3序列賦值、序列解包

    這篇文章主要介紹了Python3序列賦值、序列解包的相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • Python實戰(zhàn)之異步獲取中國天氣信息

    Python實戰(zhàn)之異步獲取中國天氣信息

    這篇文章主要介紹了如何利用Python爬蟲異步獲取天氣信息,用的API是中國天氣網(wǎng)。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動手試一試
    2022-03-03
  • Python學(xué)習(xí)之線程池與GIL全局鎖詳解

    Python學(xué)習(xí)之線程池與GIL全局鎖詳解

    本文我們將學(xué)習(xí)線程池的創(chuàng)建與全局鎖。線程池的創(chuàng)建于進(jìn)程池的原理是相同的;關(guān)于GIL全局鎖,暫時沒有代碼上的練習(xí),而是對其概念進(jìn)行一個簡單的啟蒙,感興趣的可以了解一下
    2022-04-04
  • python 如何利用argparse解析命令行參數(shù)

    python 如何利用argparse解析命令行參數(shù)

    這篇文章主要介紹了python 利用argparse解析命令行參數(shù)的步驟,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-09-09
  • asyncio 的 coroutine對象 與 Future對象使用指南

    asyncio 的 coroutine對象 與 Future對象使用指南

    asyncio是Python 3.4版本引入的標(biāo)準(zhǔn)庫,直接內(nèi)置了對異步IO的支持。asyncio的編程模型就是一個消息循環(huán)。今天我們就來詳細(xì)討論下asyncio 中的 coroutine 與 Future對象
    2016-09-09
  • Pandas+openpyxl進(jìn)行Excel處理詳解

    Pandas+openpyxl進(jìn)行Excel處理詳解

    這篇文章主要為大家詳細(xì)介紹了如何使用pandas和openpyxl庫對多個Excel文件進(jìn)行多種處理的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2025-02-02

最新評論

沅江市| 蛟河市| 阳新县| 安义县| 陕西省| 临汾市| 扎鲁特旗| 万年县| 溆浦县| 定安县| 厦门市| 犍为县| 金昌市| 锡林浩特市| 二连浩特市| 乌鲁木齐县| 布尔津县| 盐池县| 砚山县| 平遥县| 蒲江县| 临海市| 迭部县| 宕昌县| 璧山县| 花莲市| 应用必备| 清流县| 上饶县| 勐海县| 儋州市| 高密市| 玛沁县| 五莲县| 剑川县| 兖州市| 晋江市| 察隅县| 乌审旗| 苍梧县| 浑源县|