Leetcode 006 ZigZag Conversion (模拟)

题目连接: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;
		}
};

猜你喜欢

转载自blog.csdn.net/u011328934/article/details/80600904