题目要求的是用z的规律排序字符串,然后按照从左到右,从上到下的顺序排序。巧用flag,这个方法就十分有趣。
flag在这里有个很生动的动态样子,从左到右排序,按照一定规律放到每个桶里面,又像是桶排序。十分有趣。
#省去上面的内容
# 有几个区间就有几个桶
res = ["" for _ in range(numRows)]
i, flag = 0, -1 #设置一个底层顺序,用flag进行判断,就像是在两边横跳的小人
for c in s:
res[i] += c
if i == 0 or i == numRows - 1: flag = - flag
i += flag
return "".join(res)