前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >leetcode: 6. ZigZag Conversion

leetcode: 6. ZigZag Conversion

作者头像
JNingWei
发布2018-09-28 14:42:32
3540
发布2018-09-28 14:42:32
举报
文章被收录于专栏:JNing的专栏JNing的专栏

Problem

代码语言:javascript
复制
# The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: 
# (you may want to display this pattern in a fixed font for better legibility)
# 
# P   A   H   N
# A P L S I I G
# Y   I   R
# And then read line by line: "PAHNAPLSIIGYIR"
# Write the code that will take a string and make this conversion given a number of rows:
# 
# string convert(string text, int nRows);
# convert("PAYPALISHIRING", 3) should return "PAHNAPLSIIGYIR".

AC

代码语言:javascript
复制
# Time:  O(n)
# Space: O(1)
class Solution():
    def convert(self, s, numRows):
        if numRows == 1:
            return s
        step, zigzag = 2 * numRows - 2, ""
        for i in range(numRows):
            for j in range(i, len(s), step):
                zigzag += s[j]
                if 0 < i < numRows - 1 and j + step - 2 * i < len(s):
                    zigzag += s[j + step - 2 * i]
        return zigzag


if __name__ == "__main__":
    assert Solution().convert("PAYPALISHIRING", 1) == 'PAYPALISHIRING'
    assert Solution().convert("PAYPALISHIRING", 3) == 'PAHNAPLSIIGYIR'
    assert Solution().convert("PAYPALISHIRING", 4) == 'PINALSIGYAHRPI'
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年10月31日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Problem
  • AC
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档