ZigZag Conversion - LeetCode
Posted 真子集
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZigZag Conversion - LeetCode相关的知识,希望对你有一定的参考价值。
目录
题目链接
注意点
- 要考虑到输入的numRows为1的情况...
- 虽然题目说的是之字形,但是明明就是N啊...
解法
解法一:逐列排,从上往下,直到某列的最高字符和最低字符才改变方向。时间复杂度为O(n)
class Solution {
public:
string convert(string s, int numRows) {
if(numRows < 2)
{
return s;
}
vector<string> rows(numRows);
int i,curRow = 0,dir = -1,n = s.size();
for(i = 0;i < n;i++)
{
rows[curRow] += s[i];
if(curRow == 0||curRow == numRows-1)
{
dir = -1*dir;
}
curRow += dir;
}
string anw;
n = rows.size();
for(i = 0;i < n;i++)
{
anw += rows[i];
}
return anw;
}
};
解法二:找规律,可以发现每一个字符与numRows之间的关系,具体参见官方题解
小结
- 不知道用时不到10ms的神人是怎么打出来的...
以上是关于ZigZag Conversion - LeetCode的主要内容,如果未能解决你的问题,请参考以下文章
#Leetcode# 6. ZigZag Conversion