给定一个长度为 n 的字符串和一个指定行数 k ,请你从上到下,从左到右地把这个字符串转换成 z 字形,一共 n 行。
例如输入的字符串是 "nowcoder",k=3,则转换成的 z 字形是
n o
ocdr
w e
然后返回这个新字符串,noocdrwe
数据范围: ,字符串中仅包含小写英文字母。
class Solution: def zconvert(self , str: str, k: int) -> str: res="" for i in range(k): for j in self.getNum(i,k,len(str)): res+=str[j] return res def getNum(self,i,k,l): delta=2*(k-1) p=i while True: yield p p=int(p/delta+1.5)*delta-p%delta if p>=l: break