No.6 Z字形变换

题目大意

将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。
比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下:


image.png

方法一:迭代法

1.设置一个List列表,存储每一行的结果。
2.对字符串s进行遍历,每次将字符放入正确的位置。
3.设置一个curRow变量,存储当前的行位置,godown记录移动方向。
4.当且仅当curRow==0 或者curRow==rowNum-1时需要反转方向。

Java

public String convert(String s, int numRows) {
         if(numRows==1) return s;
         List rows = new ArrayList<>();
         for(int i=0;i

Python

class Solution(object):
    #方法一:迭代  36ms  98.90%
    def convert(self, s, numRows):
        """
        :type s: str
        :type numRows: int
        :rtype: str
        """
        if numRows<2:return s
        res =["" for _ in range(numRows)]  #不给变量起名字
        i,flag=0,-1
        for ch in s:
            res[i]+=ch
            if i==0 or i==numRows-1:
                flag = -flag
            i += flag
            
        return "".join(res)  #连接元素序列

你可能感兴趣的:(No.6 Z字形变换)