波浪形的…额,转换? 简单题。
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)
1 2 3 |
P A H N A P L S I I G Y 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:
1 |
string convert(string text, int nRows); |
convert("PAYPALISHIRING", 3)
should return "PAHNAPLSIIGYIR"
.
题目不难…
也不多说啥,也没坑点,自己注意越界就好。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
class Solution(object): def convert(self, s, numRows): """ :type s: str :type numRows: int :rtype: str """ if numRows <= 1 : return s rt = "" for i in range(numRows) : idx = i up = (idx - 0) * 2 down = ((numRows-1) - idx) * 2 if idx < len(s) : rt += s[idx] while idx < len(s) : idx += down if down and idx < len(s): rt += s[idx] idx += up if up and idx < len(s) : rt += s[idx] return rt |
每天Python一题呗…
【LeetCode】6. ZigZag Conversion