leetCode第6题,Z字形变换

leetCode第6题,Z字形变换

class Solution(object):
def convert(self, s, numRows):
“”"
:type s: str
:type numRows: int
:rtype: str
“”"
# 按照规则创建新的只包含一个有效字母的列表
def newList(i,numRows,count):
result = []
loc = numRows-(count-numRows)-2
for j in range(numRows):
if j == loc:
result.append(i)
else:
result.append(’ ')
return result

    if (len(s)<=1 or numRows<=1) or len(s)<=numRows:
        return s
    
    if (numRows==2):
        s1 = s[::2]
        s2 = s[1:][::2]
        result1 = "".join(s1)
        result2 = "".join(s2)
        return result1+result2
    
    storeList = []
    count=0
    nextS = []
    for i in s:
        if count<numRows:
            nextS.append(i)
        elif count==numRows:
            storeList.append(nextS)
            nextS = newList(i,numRows,count)
            storeList.append(nextS)
        else:
            nextS = newList(i,numRows,count)
            storeList.append(nextS)

        
        count+=1
        if count >= (numRows*2-2):
            count=0
            nextS = []
    if len(nextS)>0:     
        if nextS[0]!=" ":
            for i in range(len(nextS), numRows):
                nextS.append(' ')
            storeList.append(nextS)
        
    resultList = []
    for i in range(numRows):
        for j in range(len(storeList)):
            if storeList[j][i] != " ":
                # resultList+str(storeList[j][i])
                resultList.append(storeList[j][i])
    return "".join(resultList)
    # return storeList
    # return resultList
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值