LeetCode(6) ZigZag Conversion

来源:互联网 发布:aisino开票软件下载 编辑:程序博客网 时间:2024/04/29 16:22

题目如下:

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   NA P L S I I GY   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".

我的代码:

//300ms class Solution {public:    string convert(string s, int nRows) {        if (nRows <=1)            return s;        int length = s.length();        int period = nRows * 2 - 2;        int rest = 0;        string result = "";        map<int, string> convert_map;        //for (int j = 1; j <= nRows;++j)        //    convert_map[j] = "";        for (int i = 0; i < length; ++ i) {            rest = (i+1) % period;            if (rest==0)                convert_map[2] += s.substr(i,1);            else if (rest > nRows)                convert_map[nRows * 2 - rest] += s.substr(i,1);            else                convert_map[rest] += s.substr(i,1);        }                for (int i = 1; i <= nRows; ++i)            result += convert_map[i];                return result;    }};


0 0
原创粉丝点击