给定一个长度为 n 的字符串和一个指定行数 k ,请你从上到下,从左到右地把这个字符串转换成 И 字形,一共 n 行。
例如输入的字符串是 "nowcoder",k=3,则转换成的 И 字形如下:
然后按 Z 字形返回新字符串(每行的字母依次拼接),最终结果为 "noocdrwe",拼接顺序如下:
数据范围:
,字符串中仅包含小写英文字母。
"nowcoder",3
"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