Python如何实现读取字符串按列分配后按行输出示例

  介绍

这篇文章主要介绍Python如何实现读取字符串按列分配后按行输出示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

<强>问题:

输入一个字符串和一个数字,数字代表分为几行,需要按照给定的列存储方法存储下来之后按行拼接读出,如:

<强>输入: TNGDWXAZQSCVBK, 3
<强>输出: TWQBNDXZSVKGAC

中间转化的时候会形成这样的图形:

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

化为矩阵可能看得更清晰一点:

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

0是作为空白填充进去的,下面看具体的实现:

# !/usr/bin env  python   utf - 8编码:   & # 39;& # 39;& # 39;& # 39;& # 39;   __Author__:沂水寒城   功能:zigzag_pattern   T , W , Q  K   N  D  X  Z  S  V  B   G  A , C   转换(“TNGDWXAZQSCVBK",, 3), should  return “TWQBNDXZSVKGAC"。   & # 39;& # 39;& # 39;   def  convert_test (one_str, num):   & # 39;才能& # 39;& # 39;& # 39;& # 39;   & # 39;才能& # 39;& # 39;   mod=才能len (one_str) % (num + 1)   if 才能;mod==0:   ,,,关口=(len (one_str)/(num + 1) * 2   其他的才能:   ,,,关口=(len (one_str)/(num + 1) * 2 + 1   全国矿工工会,行=# print 才能& # 39;行,关口# 39;,,行,关口   矩阵才能=[]   for 才能小姐:拷贝范围(行):   ,,,matrix.append([0] *峡路)   one_str_list=才能列表(one_str)   for 才能;j 拷贝范围(峡路):   ,,,if  j % 2==0:   ,,,,,for 小姐:拷贝范围(行):   ,,,,,,,if  len (one_str_list):   ,,,,,,,,,矩阵[我][j]=one_str_list.pop (0)   ,,,:   ,,,,,矩阵[1][j]=one_str_list.pop (0)   ,# print 矩阵   #,才能for  one 拷贝矩阵:   #才能,,,one_list=(str (onec), for  onec 拷贝一个   #才能,,,print  & # 39; . join (one_list), & # 39;   res才能=& # 39;& # 39;   for 才能;one_list 拷贝矩阵:   ,,,one_list=(str(一个),for  one 拷贝one_list]   ,,,res +=& # 39; & # 39; . join (one_list)   return 才能;& # 39;& # 39;. join (res.split (& # 39; 0 & # 39;))   if  __name__ ==, & # 39; __main__ # 39;:   print 才能;convert_test (“TNGDWXAZQSCVBK",, 3)   print 才能;convert_test (“PAYPALISHIRING",, 2)   print 才能;convert_test (“PAYPALISHIRING",, 4)

结果如下:

TWQBNDXZSVKGAC
PPIINAYALSHRIG
PLRAAIIIYSNPHG
(在0.3秒完成)

Python如何实现读取字符串按列分配后按行输出示例