6. Zigzag Conversion z 字变形

2022-03-10  本文已影响0人  sarto

题目

将字符串 "PAYPALISHIRING" 以给定的 Z 字形式打印。


image.png image.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
}
上一篇 下一篇

猜你喜欢

热点阅读