6. ZigZag Conversion

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".

class Solution {
public:
    string convert(string s, int numRows) {
        string t[numRows];
        int len=s.size(),j=0;
        while(j<len){
            for(int i=0;i<numRows&&j<len;i++)t[i]+=s[j++];
            for(int i=numRows-2;i>0&&j<len;i--)t[i]+=s[j++];
        }
        string ans;
        for(int i=0;i<numRows;i++){
            ans+=t[i];
        }
        return ans;
    }
};


你可能感兴趣的:(6. ZigZag Conversion)