首页 > 试题广场 >

Z字形输出字符串

[编程题]Z字形输出字符串
  • 热度指数:633 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个长度为 n 的字符串和一个指定行数 k ,请你从上到下,从左到右地把这个字符串转换成 z 字形,一共 n 行。

例如输入的字符串是 "nowcoder",k=3,则转换成的 z 字形是
n  o
ocdr
w e
然后返回这个新字符串,noocdrwe

数据范围: ,字符串中仅包含小写英文字母。
示例1

输入

"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

发表于 2022-09-24 16:20:33 回复(0)