6. ZigZag Conversion Leetcode Python 2016 new Season

来源:互联网 发布:北京旅游 知乎 编辑:程序博客网 时间:2024/06/04 19:55

The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)

P   A   H   NA P L S I I GY   I   R
And then read line by line: "PAHNAPLSIIGYIR"

Write the code that will take a string and make this conversion given a number of rows:

string convert(string text, int nRows);
convert("PAYPALISHIRING", 3) should return "PAHNAPLSIIGYIR".

Show Tags

















class Solution(object):    def convert(self, s, numRows):        """        :type s: str        :type numRows: int        :rtype: str        """        if len(s) <= 1 or numRows <= 1:            return s        resRows = [''] * numRows        resRowNum = 0        step = 1        for index in xrange(len(s)):            resRows[resRowNum] += s[index]            if (step == 1 and resRowNum == numRows - 1) or (step == -1 and resRowNum == 0):                step *= -1            resRowNum += step        return ''.join(resRows)


0 0