leetcode 6. ZigZag Conversion golang实现

来源:互联网 发布:java商品库存管理代码 编辑:程序博客网 时间:2024/06/06 13:21
  • ZigZag Conversion
    首先得知道题是啥意思 就是按照 “z”形状排列

比如 “012345678910” row = 3 时 “z”形就是

这里写图片描述

  • 解题思路

    首先用row个数组存每一个字符。那么关键就是算出每一个字母应该在第几个数组中。仔细观察是一个循环的规律。循环长度为 row + row -2

代码

func convert(str string, row int) string {    if row == 1 {        return str    }    item_len := 2 * row - 2  //循环的长度    res := make([][]string,row,row)    for index,v := range str{        mod := index % item_len        if(mod < row){               res[mod] = append(res[mod],string(v))        }else{                i := row - (mod  - row) - 2                 res[i] = append(res[i],string(v))        }    }    var s string    for _,arr := range res{        for _ ,v:= range arr{            s += v        }    }    return s}