Home  >  Article  >  Backend Development  >  Python implements reading strings and distributing them in columns and outputting them in rows

Python implements reading strings and distributing them in columns and outputting them in rows

不言
不言Original
2018-04-17 11:56:393307browse

This article mainly introduces Python's implementation of reading strings and distributing them by columns and then outputting them by rows. It involves Python's operation skills for string traversal, judgment, operation and other related operations. Friends in need can refer to it

The example of this article describes the Python implementation of reading strings and distributing them in columns and then outputting them in rows. Share it with everyone for your reference, the details are as follows:

Question:

Enter a string and a number, the number represents how many lines it is divided into , need to be stored according to the given column storage method and then read out by row splicing, such as:

Input: TNGDWXAZQSCVBK, 3
Output: TWQBNDXZSVKGAC

During the intermediate conversion, a graph like this will be formed:

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

It is possible to turn it into a matrix See it more clearly:

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

0 is filled in as a blank , look at the specific implementation below:


#!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)


The results are as follows:

TWQBNDXZSVKGAC
PPIINAYALSHRIG
PLRAAIIIYSNPHG
[Finished in 0.3s]

Related recommendations:

Python implementation of solving brackets Method of matching problems

Using Python to implement web user login and registration functions

The above is the detailed content of Python implements reading strings and distributing them in columns and outputting them in rows. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn