溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何實現(xiàn)讀取字符串按列分配后按行輸出示例

發(fā)布時間:2021-04-06 10:57:18 來源:億速云 閱讀:319 作者:小新 欄目:開發(fā)技術

這篇文章主要介紹Python如何實現(xiàn)讀取字符串按列分配后按行輸出示例,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

問題:

輸入一個字符串和一個數(shù)字,數(shù)字代表分為幾行,需要按照給定的列存儲方法存儲下來之后按行拼接讀出,如:

輸入:TNGDWXAZQSCVBK,3
輸出:TWQBNDXZSVKGAC

中間轉(zhuǎn)化的時候會形成這樣的圖形:

T   W   Q   K
N D X Z S V B
G   A   C

化為矩陣可能看得更清晰一點:

T 0 W 0 Q 0 B
N D X Z S V K
G 0 A 0 C 0 0

0是作為空白填充進去的,下面看具體的實現(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)

結果如下:

TWQBNDXZSVKGAC
PPIINAYALSHRIG
PLRAAIIIYSNPHG
[Finished in 0.3s]

以上是“Python如何實現(xiàn)讀取字符串按列分配后按行輸出示例”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI