题意:将一个单词排成倒的Z的形状。
解题思路:找规律。这种题目没有具体的算法。将n = 1,2,3,4,,,等情况全部列出,然后找相邻两个数之间的关系。建议大家还是自己去找,不然看了答案也没有什么提高。
代码:
class Solution {
public:
string convert(string s, int nRows) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(nRows <= 1)
return s;
int len = s.size();
string ans = "";
int step = 2 * nRows - 2;
for(int i = 0; i < nRows; i++)
{
int k = 2 * i;
int j = i;
while(j < len)
{
if(i == 0 || i == (nRows - 1))
{
ans += s[j];
j += step;
}
else
{
ans += s[j];
j += step - k;
if(j >= len)
break;
ans += s[j];
j += k;
}
}
}
return ans;
}
};