美文网首页
LeetCode 6 Z字形变换 zigzag-conversi

LeetCode 6 Z字形变换 zigzag-conversi

作者: 叽翅 | 来源:发表于2019-09-27 14:57 被阅读0次

1、如图,每个红框内可以视为一组,把整个字符串按 2n-2 切割

[[L E E T C O], [D E I S H I], [R I N G _ _]]

WX20190917-145303@2x.png

2、那么,我们先把每一组的第一位输出

L D R

WX20190917-144822@2x.png

如图,此时字符串还剩下
[[E E T C O], [E I S H I], [I N G _ _]]

对于每一组,其实只是要输出首尾两端的字母就行了
第一次输出: E O E I I
第二次输出: E C I H N
第三次输出: T S G

3、代码

func Min(x, y int) int {
    if x < y {
        return x
    }
    return y
}
func convert(s string, numRows int) string {
    // 16 ms, 6.7 MB
    if len(s) < 2 || numRows < 2 {
        return s
    }
    div := numRows + (numRows - 2)

    // 将字符串按V字形来切分为数组
    divS := []string{}
    for i := 0; i < len(s); i += div {
        divS = append(divS, s[i:Min(i+div, len(s))])
    }
    // 将数组中每个元素的第一位取出
    res := ""
    for _, each := range divS {
        res += string(each[0])
    }

    // 使用i, j两个游标来从两端取值
    for i, j := 1, div-1; i <= j; i, j = i+1, j-1 {
        for _, each := range divS {
            if i < len(each) {
                res += string(each[i])
            }
            if j < len(each) && i != j {
                res += string(each[j])
            }
        }
    }
    return res
}

题解: https://leetcode-cn.com/problems/zigzag-conversion/solution/bu-kuai-dan-te-wu-nao-de-yi-ge-jie-fa-z-by-zsdos/

相关文章

  • LeetCode 6 Z字形变换 zigzag-conversi

    1、如图,每个红框内可以视为一组,把整个字符串按 2n-2 切割 [[L E E T C O], [D E I S...

  • Python算法-模拟过程实现算法

    6. Z 字形变换[https://leetcode-cn.com/problems/zigzag-convers...

  • LeetCode[6] - Z字形变换

    题目 将字符串 "PAYPALISHIRING"以Z字形排列成给定的行数: 之后从左往右,逐行读取字符:"PAHN...

  • [LeetCode]6、Z字形变换

    题目描述 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETC...

  • Leetcode 6 Z字形变换

    Z 字形变换 题目 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "...

  • leetcode 6 Z 字形变换

    这个题的关键在于控制到达行0或者行的最大值时往回走的问题,有点像个铁道兵,走到路的尽头就返回。 自己的解法,使用s...

  • LeetCode 6 Z字形变换

    6 Z字形变换 一、题目 将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z字形排列。 比如输入字符串为"...

  • Leetcode 6 Z字形变换

    将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "LEETCODEISH...

  • leetcode 6 - Z 字形变换

    题目以及题解来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/...

  • Python小白 Leetcode刷题历程 No.6-No

    Python小白 Leetcode刷题历程 No.6-No.10 Z 字形变换、整数反转、字符串转换整...

网友评论

      本文标题:LeetCode 6 Z字形变换 zigzag-conversi

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