Home >Backend Development >Python Tutorial >Python implements reading strings and distributing them in columns and outputting them in rows
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!