leetcode 6. ZigZag Conversion golang实现

本文介绍了如何使用Go语言解决LeetCode的第6题——ZigZag转换。题目要求将字符串按照特定的'Z'字形排列。解题的关键在于确定每个字符所在数组的位置,其规律呈循环性,循环长度为row + row - 2。随后给出了实现代码。
  • 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

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值