题目连接:Leetcode 006 ZigZag Conversion
解题思路:假设一个周期需要n个数,那么第一行两个数的下标关系为0,n;第二行为1,n-1;以此类推。需要注意的是第一行和最后一行,一个周期里面只有一个数。
class Solution { public: string convert(string s, int numRows) { if (numRows == 1) return s; string ret = ""; int gap = 2 * numRows - 2, len = s.length(); for (int i = 0; i < numRows; i++) { int p = gap - 2 * i; for (int j = i; j < len; j += gap) { ret += s[j]; if (p + j < len && i && i != numRows-1) ret += s[j+p]; } } return ret; } };