一、题目
二、代码
class Solution {
public:
string convert(string s, int numRows) {
//定义字符串向量,存储每行字符
vector<string> str(numRows);
//定义字符串用于返回答案
string answer;
//当给定行数为1时,返回字符串本身
if(numRows == 1)
{
return s;
}
//当给定行数不为1时
else
{
//遍历字符串
for(int i=0;i<s.size();i++)
{
//当字符为竖线上的字符时
if(i%(2*numRows-2)<numRows)
{
//将字符存储于所在行的字符串中
str[i%(2*numRows-2)] += s[i];
}
//当字符为斜线上的字符时
else
{
//将字符存储于所在行的字符串中
str[numRows-1-((i%(2*numRows-2))-(numRows-1))] += s[i];
}
}
//遍历向量容器,将向量容器中所有字符串合并到answer字符串中
for(int j=0;j<numRows;j++)
{
answer += str[j];
}
//返回Z字形变换后的字符串
return answer;
}
}
};