【C++代码】字符串Z字形输出

mac2022-06-30  19

#include <iostream> #include <string> using namespace std; string convert(string s, int numRows) { int len = s.size(); if (len <= 1) { return s; } else { int block = 2 * numRows - 2; string temp; for (int i = 0; i < numRows; i++) { int index_1 = i; if (index_1 == 0) { while (index_1 < len) { temp.push_back(s[index_1]); index_1 += block; } } else if (index_1 == block / 2) { while (index_1 < len) { temp.push_back(s[index_1]); index_1 += block; } } else { int index_2 = block - index_1; while (index_1 < len && index_2 < len) { temp.push_back(s[index_1]); temp.push_back(s[index_2]); index_1 += block; index_2 += block; } if (index_1 < len) { temp.push_back(s[index_1]); } } } return temp; } } int main() { string s("abcdef"); string result = convert(s, 3); cout << result << endl; return 0; }
最新回复(0)