您的位置:首页 > 其它

6. ZigZag Conversion

2017-08-08 00:40 176 查看
The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)

P A H N

A P L S I I G

Y I R

这里的zigzag排序在图像格式JPEG的存储上得到应用。

string ZigZagConversion::convert(string s, int numRows)
{
if (numRows <= 1) return s;

const int len = s.length();
string *str = new string[numRows];
//step控制存储的方向
int row = 0, step = 1;
for (int i = 0; i < len; ++i)
{
str[row].push_back(s[i]);
if (row == 0)
{
step = 1;
}
else if (row == numRows - 1)
{
step = -1;
}

row = row + step;
}
//重构字符串
s.clear();
for (int j = 0; j < numRows; j++)
{
s.append(str[j]);
}

delete[] str;
return s;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode zigzag