LeetCode刷题-6.Z字形变换
题目链接:6.Z字形变换
¶题解:
完全就是找规律,找到每行下标的规律即可,为一个等差数列!
¶题目简述:
将字符串按倒Z型排列,然后按行读取完整字符,输出对应字符串!
¶题解:
以一个容易发现规律的例子来解释:
以四行为例:
1 |
|
- 第一行和最后一行公差相同,为
2 * n - 2
,即从0 - 6 中间隔了1-3 和 4 - 6 即两个n - 1
. - 中间其他行,看做两个等差序列的混合,分别去处理,竖线上的同样是以
2 * n - 2
为公差的等差数列,不在竖线上的是以2 * n - 2 - i
为首项,以2 * n - 2
为公差的等差数列!
2 * n - 2 - i
:会发现 1 + 5 = 6 2 + 4 = 6,即 i + x = 2 * n - 2
,x = 2 * n - 2 - i
注意: n = 1时,2 * n - 2
为零,循环为死循环,所以进行特判,返回原串 s
。
¶AC代码:
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小牛博客!
评论