1. 题目
2. 题解
对 Z 字形变化后的每一行进行分析,发现每一行的数据存在如下特点。
假设:行数 r
(1)第一行的字符间隔为 (r-1)*2 和 0,两种间隔交替出现
(2)第二行的字符间隔为 (r-2)*2 和 2,两种间隔交替出现
(3)第三行的字符间隔为 (r-3)*2 和 4,两种间隔交替出现
(4)......
(5)第 i 行的字符间隔为 (r-i)*2 和 (i-1)*2,两种间隔交替出现
代码如下:
func convert(s string, numRows int) string {
var sNew string = ""
var sLen int = len(s)
var a int = (numRows-1)*2
if numRows == 1{
return s
}
for i:=0; i<numRows; i++ {
for index, step:=i, a-i*2; index<sLen; step=a-step {
if (index<sLen) && (step!=0){
sNew = sNew + string(s[index])
}
index = index+step
}
}
return sNew
}
提交结果: