首页 > 其他 > 详细

leetcode-6-Z字形变换

时间:2019-07-08 21:13:35      阅读:100      评论:0      收藏:0      [点我收藏+]

题目描述:

技术分享图片

技术分享图片

方法一:

class Solution: 
    def convert(self, s: str, numRows: int) -> str: 
        if not s: 
            return "" 
        if numRows == 1:
            return s 
        s_Rows = [""] * numRows 
        i = 0 
        n = len(s) 
        while i < n: 
            for j in range(numRows): 
                if i < n: 
                    s_Rows[j] += s[i] 
                    i += 1 
            for j in range(numRows-2,0,-1): 
                if i < n: 
                    s_Rows[j] += s[i] 
                    i += 1 
        return "".join(s_Rows)

方法二:

class Solution: 
    def convert(self, s: str, numRows: int) -> str:
        if not s: 
            return "" 
        if numRows == 1:
            return s 
        split_s_len = numRows * 2 - 2 
        data = [] 
        n = len(s) 
        for i in range(0, n,split_s_len): 
            data.append(s[i:i+split_s_len])
            #print(data) 
        res = "" 
        for i in range(numRows): 
            for tmp in data: 
                if i < len(tmp): 
                    if i == 0 or i == numRows-1: 
                        res += tmp[i] 
                    else: 
                        res += tmp[i] 
                        if split_s_len -i < len(tmp): 
                            res += tmp[split_s_len-i] 
        return res

 

leetcode-6-Z字形变换

原文:https://www.cnblogs.com/oldby/p/11153743.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!