6. ZigZag Conversion

题目:https://leetcode.com/problems/zigzag-conversion/

string convert2(string s, int numRows) {
	if (s.length() < 2 || numRows < 2)
		return s;
	int cycle = 2 * numRows - 2;
	string tmp;
	string result;
	for (int i = 0; i < numRows; i++)
	{
		if (i == 0 || i == numRows - 1)
		{
			for (int j = 0; j < s.length(); j += cycle)
			{
				if (i + j < s.length())
					tmp += s.at(i+j);
			}
			result += tmp;
			cout << tmp << endl;
			tmp.clear();
		}
		else
		{
			int minus = numRows - i - 1;
			int j, j1;
			bool find = false;
			for (j = i, j1 = 0; j < s.length(); j += cycle, j1 += cycle)
			{
				tmp += s.at(j);
				if (!find)
				{
					j1 = j + 2 * minus;
				}
				
				if (j1 < s.length())
					tmp += s.at(j1);
			}
			result += tmp;
			cout << tmp << endl;
			tmp.clear();
		}
	}
	return result;
}

2016-08-08 20:30:52