美文网首页
6. Zigzag Conversion z 字变形

6. Zigzag Conversion z 字变形

作者: sarto | 来源:发表于2022-03-10 00:14 被阅读0次

题目

将字符串 "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
}

相关文章

网友评论

      本文标题:6. Zigzag Conversion z 字变形

      本文链接:https://www.haomeiwen.com/subject/qlixdrtx.html