原题
https://leetcode.cn/problems/zigzag-conversion/
思路
字符串处理,用方向变量来标记方向。
复杂度
时间:O(n)
空间:O(n)
Python代码
class Solution:
def convert(self, s: str, numRows: int) -> str:
l = ["" for i in range(numRows)]
i = 0
direction = 1
for ch in s:
l[i] += ch
if i + direction >= numRows or i + direction < 0:
direction *= -1
i += direction
return "".join(l)
Go代码
func convert(s string, numRows int) string {
if numRows == 1 {
return s
}
l := make([]string, numRows)
i := 0
direction := 1
for _, ch := range s {
l[i] += string(ch)
if i + direction >= numRows || i + direction < 0 {
// 改变方向
direction *= -1
}
i += direction
}
// 拼接字符串
return strings.Join(l, "")
}
博客围绕LeetCode上的Zigzag Conversion题目展开,介绍解题思路为字符串处理,用方向变量标记方向,分析复杂度为时间O(n)、空间O(n),并给出Python和Java代码实现。
248

被折叠的 条评论
为什么被折叠?



