基于Python实现对字符串的Z形转换
1、题目描述
将字符串 "PAYPALISHIRING" 以Z字形排列成给定的行数:
P A H N
A P L S I I G
Y I R
之后从左往右,逐行读取字符:"PAHNAPLSIIGYIR"
示例 1:
输入: s = "PAYPALISHIRING", numRows = 3
输出: "PAHNAPLSIIGYIR"
示例 2:
输入: s = "PAYPALISHIRING", numRows = 4
输出: "PINALSIGYAHRPI"
解释:
P I N
A L S I G
Y A H R
P I
2、算法设计
首先观察Z形转换的规律,转换的规则如下所示:
如上图所示,是按照箭头指示方向排列字符串的,其中数字代表字符串的索引。
算法一:可以通过暴力解算,即建立一个足够大的二维数组,将按照规则转换的Z形数据存放到二维数组中,然后按照行顺序读取。
算法二:按照Z形排列的规律,直接在字符串上读取对应索引的元素即可。在这里采取第二种算法。算