Leetcode Problem6
ZigZag Conversion
一开始看到这个题目就有点懵逼,后来看了介绍之后就感觉好多了。直观上我就想通过扫描矩阵的方式来获得结果。
比如s = "PAYPALISHIRING", numRows = 3,可以得到结果:
P A H N
A P L S I I G
Y I R
然后得到最终结果:PAHNAPLSIIGYIR。
可以想到,我们可以采用一个矩阵来储存上面的图形。行数已知,列数需要我们知道。可以发现,上面那个图形可以简单地割裂开来,比如PAYP,ALIS,HIRI三个完整的和NG一个不完整的,每个完整的部分字母的个数均为 ( numRows -1 )* 2,那么除去不完整的,列数为 len(即总长度)/ ( numRows -1 )* 2 * ( numRows -1 )。若不完整部分个数不大于numRows,则列数再加一,否则,为列数本身加上不完整部分与numRows的差再加一。
然后按照 'Z' 的规律储存就ok了。

浙公网安备 33010602011771号