题目描述
字符串“PAYPALISHIRING”以Z字形图案写在给定数量的行上,如下所示:(您可能希望以固定字体显示此图案以获得更好的易读性):
P A H N A P L S I I G Y I R
然后返回: "PAHNAPLSIIGYIR"
思路
先声明一个长度为numRows的列表,然后遍历原有字符串:
当当前索引:index==0时,step=1,如果当前索引index==numRows时,相当于控制遍历的上下方向。
代码实现
class Solution: def convert(self, s: str, numRows: int) -> str: if numRows==1 or len(s)<=numRows: return s ans=['']*numRows index,step=0,1 for x in s: ans[index]+=x if index==0: step=1 elif index==numRows-1: step=-1 index+=step return "".join(ans)
同时安利大家一个代码执行模拟的网站:http://www.pythontutor.com/live.html#mode=edit