概述
思路:
- 第一行和最后一行的序号是等差数列;
- 其余行序号是两个差值交替的序列。
- 所有的差值均与行号有关。(Key)
class Solution:
def convert(self, s, numRows):
"""
:type s: str
:type numRows: int
:rtype: str
"""
re = ""
k = len(s)
if k <= numRows or numRows == 1:
return s
for i in range(numRows):
sta = i
re = re + s[sta]
if i == 0 or i == numRows-1 :
d = 2* numRows - 2
while (sta + d) < k:
sta = sta + d
re = re + s[sta]
else:
d1 = 2 * ( numRows - i ) - 2
d2 = 2 * ( i + 1 ) - 2
d = (d1,d2)
j = 0
while (sta + d[j%2]) < k:
sta = sta + d[j%2]
re = re + s[sta]
j+=1
return re
执行用时:128 ms
我的提交执行用时
已经战胜 74.00 % 的 python3 提交记录
最后
以上就是痴情烤鸡为你收集整理的【Leetcode-算法-Python3】6. Z字形变换的全部内容,希望文章能够帮你解决【Leetcode-算法-Python3】6. Z字形变换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复