LeetCode | 6)ZigZag Conversion

来源:互联网 发布:php冒泡 编辑:程序博客网 时间:2024/06/03 07:08

题目

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

And then read line by line: “PAHNAPLSIIGYIR”
Write the code that will take a string and make this conversion given a number of rows:
string convert(string text, int nRows);
convert(“PAYPALISHIRING”, 3) should return “PAHNAPLSIIGYIR”

prototype

class Solution {public:    string convert(string s, int numRows) {};

代码

class Solution {public:    string convert(string s, int numRows) {        string res;        vector<string> vstr(numRows);        if (numRows == 1)   return s;        int i{0}, n{0};        while (i < s.size())        {            while (i < s.size() && n < numRows - 1)            {                vstr[n++] += s[i++];            }            while (i < s.size() && n > 0)            {                vstr[n--] += s[i++];            }        }        for (auto &p : vstr)            res += p;        return res;    }};
0 0
原创粉丝点击