class Solution {
public:
string convert(string s, int nRows)
{
if(nRows <= 1)
return s;
int n = s.length();
string ans = "";
int i, j;
if(nRows == 2)
{
for(j=0; j<n; j+=2)
ans += s[j];
for(j=1; j<n; j+=2)
ans += s[j];
return ans;
}
vector< vector<char> > v(nRows, vector<char>(n, '#'));
i = 0, j = 0;
int r = 0, c = 0;
while(i < n)
{
r = 0;
while(r < nRows && i < n)
v[r++][c] = s[i++];
r -= 1;
while(r > 1 && i < n)
v[--r][++c] = s[i++];
c += 1;
}
for(i=0; i<nRows; i++)
{
for(j=0; j<n; j++)
if(v[i][j] != '#')
ans += v[i][j];
}
/*
for(i=0; i<nRows; i++)
{
for(j=0; j<n; j++)
cout << v[i][j] << " ";
cout << endl;
}
*/
return ans;
}
};
leetcode---zigzag-conversion---字符串
最新推荐文章于 2022-10-11 21:03:23 发布