我是靠谱客的博主 痴情烤鸡,最近开发中收集的这篇文章主要介绍【Leetcode-算法-Python3】6. Z字形变换,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

思路:

- 第一行和最后一行的序号是等差数列;

- 其余行序号是两个差值交替的序列。

- 所有的差值均与行号有关。(Key)


class Solution:
    def convert(self, s, numRows):
        """
        :type s: str
        :type numRows: int
        :rtype: str
        """
        re = ""
        k = len(s)
        if k <= numRows or numRows == 1:
            return s
        for i in range(numRows):
            sta = i
            re = re + s[sta]
            if i == 0 or i == numRows-1 :
                d = 2* numRows - 2
                while (sta + d) < k:
                    sta = sta + d
                    re = re + s[sta]
            else:
                d1 = 2 * ( numRows - i ) - 2
                d2 = 2 * ( i + 1 ) - 2
                d = (d1,d2)
                j = 0
                while (sta + d[j%2]) < k:
                    sta = sta + d[j%2]
                    re = re + s[sta]
                    j+=1

        return re

执行用时:128 ms

我的提交执行用时
已经战胜 74.00 % 的 python3 提交记录

最后

以上就是痴情烤鸡为你收集整理的【Leetcode-算法-Python3】6. Z字形变换的全部内容,希望文章能够帮你解决【Leetcode-算法-Python3】6. Z字形变换所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部