ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Leetcode Z字形变换

2020-07-04 19:04:24  阅读:237  来源: 互联网

标签:return 字形 变换 numRows str 行数 字符串 Leetcode 逐行


Z子变换

将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。

比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下:

L C I R
E T O E S I I G
E D H N
之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/zigzag-conversion

1、行数为1和2特殊情况单独处理:

2、一个list管理n行的字符串,  t和d管理插入到第几行的字符串 ,最后逐行拼接字符串

class Solution:
    def convert(self, s: str, numRows: int) -> str:

        if numRows ==1:
            return s
        if numRows==2:
            return s[0::2] + s[1::2]
        final =["" for i in range(numRows)]

        t= 0
        d = 1
        i = 0
        max1 = numRows-2
        while i<len(s):
            


            final[t]+=s[i]
            t+=d
            if d==1 and t>=numRows:
                t = max(numRows-2,0)
                d= -1
            elif d==-1 and t<1:
                t = 0
                d =1
            i+=1
        s1=''
        #print(final)
        for i in range(len(final)):
            s1 +=final[i]
        return s1

  

标签:return,字形,变换,numRows,str,行数,字符串,Leetcode,逐行
来源: https://www.cnblogs.com/SuckChen/p/13236136.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有