#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;
}
【C++代码】字符串Z字形输出
最新推荐文章于 2022-10-25 12:57:28 发布