leetcode 6. Z字形变换 python实现

题目:

leetcode6题目描述

解法:

这道题算是一道观察题吧...我们计算出每一行的字符串,最后再把各行字符串拼接起来。循环是和行数numRow有关的,每隔(numRow2-2)个字母循环一次。根据当前索引对(numRow2-2)取余,来确定当前字母在哪一行。可以看出:当取余后的结果小于行数时,余数就是对应的行数;当取余后的结果大于行数时,要通过余数变换到对应的行数,即新行数=(numRow*2-2)-余数。
具体代码如下:

class Solution:
    def convert(self, s: str, numRows: int) -> str:
        if numRows==1:
            return s
        s_len = len(s)          # 整个字符长度
        s_rows = [""] * numRows # 每一行的字符串
        loop_num = 2*numRows-2  # 循环长度

        for i in range(s_len):
            remainder = i % loop_num
            if remainder >= numRows:
                remainder = loop_num - remainder
            #print(s[i],remainder)
            s_rows[remainder] += s[i]

        return "".join(s_rows)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 题目描述: 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "LEETC...
    LeeYunFeng阅读 4,483评论 0 50
  • 题目描述 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETC...
    放开那只三级头阅读 1,369评论 0 0
  • 近期一直在瞎忙,就是多线作战,感觉脑子里像盛了一碗混沌(猪肉大葱馅的)。捋一捋吧! 1,曾国藩传马上要读完了,有些...
    一則阅读 1,544评论 2 1
  • 沧海一粒粟,漂浮于尘世,我主沉浮,谁言做主? 夕阳的余晖将“两位”老者的身影渐渐拉长、渐渐拉长。那...
    偷闲躲静阅读 1,360评论 0 1
  • 日出日落是一天, 忙忙碌碌是一年, 回首过去的一年, 有欢笑有喜悦,有痛苦有悲伤, 无论好与坏,那都已经成为过去,...
    用微笑掩饰忧伤181阅读 1,535评论 0 2

友情链接更多精彩内容