[一起来刷leetcode吧][31]--No.6 ZigZag Conversion

本文解析了LeetCode上的第6题ZigZag Conversion,通过实例详细介绍了如何将字符串以Z字形排列并按行读取转换成目标字符串的方法。文章给出了清晰的解题思路及Python实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇文章是程序自动发表的,详情可以见 这里
href="http://ounix1xcw.bkt.clouddn.com/github.markdown.css" rel="stylesheet">

这是leetcode的第6题--ZigZag Conversion

  题目

The string "asdfghjklqw" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility) 原题目的例子有点难懂,我就自己举个例子吧 num > = 4

a        j 
s     h  k
d   g    l  w
f        q 

return   ajshkdglwfq

  思路 可以发现,第一行和最后一行,字母依次在s中相差一个周期,而其他行,有两个点开始,同样相差一个周期。

  

show me the code

class Solution(object):
    def convert(self, s, numRows):
        """
        :type s: str
        :type numRows: int
        :rtype: str
        """
        rst = ""
        l = len(s)
        if numRows == 1:
            return s
        delta = 2 * numRows -2   #period
        for i in range(numRows):
            index = i
            index2 = delta - i
            while index < l :
                rst  = s[index]
                index  = delta
                if 0 < i < numRows - 1 and index2 < l:
                    rst  = s[index2]
                    index2  = delta
        return rst
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值