Python實(shí)現(xiàn)讀取字符串按列分配后按行輸出示例
本文實(shí)例講述了Python實(shí)現(xiàn)讀取字符串按列分配后按行輸出。分享給大家供大家參考,具體如下:
問(wèn)題:
輸入一個(gè)字符串和一個(gè)數(shù)字,數(shù)字代表分為幾行,需要按照給定的列存儲(chǔ)方法存儲(chǔ)下來(lái)之后按行拼接讀出,如:
輸入:TNGDWXAZQSCVBK,3
輸出:TWQBNDXZSVKGAC
中間轉(zhuǎn)化的時(shí)候會(huì)形成這樣的圖形:
T W Q K
N D X Z S V B
G A C
化為矩陣可能看得更清晰一點(diǎn):
T 0 W 0 Q 0 B
N D X Z S V K
G 0 A 0 C 0 0
0是作為空白填充進(jìn)去的,下面看具體的實(shí)現(xiàn):
#!usr/bin/env python #encoding:utf-8 ''''' __Author__:沂水寒城 功能:zigzag_pattern T W Q K N D X Z S V B G A C convert("TNGDWXAZQSCVBK", 3) should return "TWQBNDXZSVKGAC". ''' def convert_test(one_str,num): ''''' ''' mod=len(one_str)%(num+1) if mod==0: cols=(len(one_str)/(num+1))*2 else: cols=(len(one_str)/(num+1))*2+1 rows=num #print 'rows, cols', rows, cols matrix=[] for i in range(rows): matrix.append([0]*cols) one_str_list=list(one_str) for j in range(cols): if j%2==0: for i in range(rows): if len(one_str_list): matrix[i][j]=one_str_list.pop(0) else: matrix[1][j]=one_str_list.pop(0) #print matrix # for one in matrix: # one_list=[str(onec) for onec in one] # print ' '.join(one_list) res='' for one_list in matrix: one_list=[str(one) for one in one_list] res+=''.join(one_list) return ''.join(res.split('0')) if __name__ == '__main__': print convert_test("TNGDWXAZQSCVBK", 3) print convert_test("PAYPALISHIRING", 2) print convert_test("PAYPALISHIRING", 4)
結(jié)果如下:
TWQBNDXZSVKGAC
PPIINAYALSHRIG
PLRAAIIIYSNPHG
[Finished in 0.3s]
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python字符串操作技巧匯總》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- Python回文字符串及回文數(shù)字判定功能示例
- python根據(jù)給定文件返回文件名和擴(kuò)展名的方法
- Python計(jì)算回文數(shù)的方法
- python實(shí)現(xiàn)求最長(zhǎng)回文子串長(zhǎng)度
- Python實(shí)現(xiàn)針對(duì)給定字符串尋找最長(zhǎng)非重復(fù)子串的方法
- Python 字符串操作方法大全
- python判斷字符串是否包含子字符串的方法
- python字符串連接的N種方式總結(jié)
- python分割和拼接字符串
- python統(tǒng)計(jì)字符串中指定字符出現(xiàn)次數(shù)的方法
- Python針對(duì)給定字符串求解所有子序列是否為回文序列的方法
相關(guān)文章
Pytorch 實(shí)現(xiàn)自定義參數(shù)層的例子
今天小編就為大家發(fā)信息一篇Pytorch 實(shí)現(xiàn)自定義參數(shù)層的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08PyTorch手寫數(shù)字?jǐn)?shù)據(jù)集進(jìn)行多分類
這篇文章主要介紹了PyTorch手寫數(shù)字?jǐn)?shù)據(jù)集進(jìn)行多分類,損失函數(shù)采用交叉熵,激活函數(shù)采用ReLU,優(yōu)化器采用帶有動(dòng)量的mini-batchSGD算法,需要的朋友可以參考一下2022-03-03PyCharm+PySpark遠(yuǎn)程調(diào)試的環(huán)境配置的方法
今天小編就為大家分享一篇PyCharm+PySpark遠(yuǎn)程調(diào)試的環(huán)境配置的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11一文詳解Python中實(shí)現(xiàn)單例模式的幾種常見方式
這篇文章主要為大家介紹了Python中實(shí)現(xiàn)單例模式的幾種常見方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03python+matplotlib實(shí)現(xiàn)動(dòng)態(tài)繪制圖片實(shí)例代碼(交互式繪圖)
這篇文章主要介紹了python+matplotlib實(shí)現(xiàn)動(dòng)態(tài)繪制圖片實(shí)例代碼(交互式繪圖),小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01Python3.5基礎(chǔ)之NumPy模塊的使用圖文與實(shí)例詳解
這篇文章主要介紹了Python3.5基礎(chǔ)之NumPy模塊的使用,結(jié)合圖文與實(shí)例形式詳細(xì)分析了Python3.5中Numpy模塊的原理、功能、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2019-04-04pycharm 實(shí)現(xiàn)復(fù)制一行的快捷鍵
這篇文章主要介紹了pycharm 實(shí)現(xiàn)復(fù)制一行的快捷鍵,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01