6.Z字形变换--python

 题:将一个给定字符串根据给定的行数,以从上到下、从左到右进行z自行排列

法:设置标志位,碰到第0或者第numsRows-1行,就要改变flag,使row变化的方向发生改变,如果flag为True,就使row+=1,反之让row-=1

def convert(self, s, numRows):
        """
        :type s: str
        :type numRows: int
        :rtype: str
        """
        if numRows==1:return s#单独讨论
        res=['']* min(len(s),numRows)
        row=0
        flag=False
        for x in s:
            res[row]+=x
            if row==0 or row==numRows-1:
                #改变标志位
                flag= not flag
            if flag:
                row+=1
            else:
                row-=1
        return ''.join(res)
发布了56 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/karen17/article/details/88949219