string StringTopic::convert(string s, int numRows) { //Z字变换 int n = s.length(), num = 2 * numRows - 2; int count = n / num; //主要是看能完成的组成多少个给定结构 int left = count % num;//如果有剩下的,就单独组一个
string res;
//逐级添加给定内容 for (int i = 0; i <= numRows; ++i) { //准备对补充一行的字符串 int idx = i; while (idx <= num * i +i || idx < num * (i+1) - i) { int val1 = num * i + 1, val2 = num * (i + 1) - i; res += s[val1]; //循环条件把握不好 if (i != 0 || i != numRows) { res += s[val2]; }