题目
将字符串 "PAYPALISHIRING" 以给定的 Z 字形式打印。
![](https://img.haomeiwen.com/i22834193/97694e73a33613fa.png)
![](https://img.haomeiwen.com/i22834193/a5cdf0bf0a41ef06.png)
解析
一开始认为每个位置的字符是固定的且有规律,尝试写公式发现很难。看了解析,按顺序将这些字符写入到固定数据结构中。
zmap [row]string
采用 append 字符串的模式,能有效避免 col 的问题。
func convert(s string, numRows int) string {
if len(s) <=numRows || numRows == 1 {
return s
}
zmap := make([]string, numRows)
arrow := -1
row := 0
for _,v := range s {
zmap[row]+=string(v)
if row == 0 || row == numRows-1 {
arrow = ^arrow + 1
}
row+=arrow
}
var rst string
for i := range zmap {
rst+=zmap[i]
}
return rst
}
网友评论