[leetcode]6. ZigZag Conversion

来源:互联网 发布:linux 显示执行时间 编辑:程序博客网 时间:2024/05/16 16:59

题目链接:https://leetcode.com/problems/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   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".

class Solution{public:    string convert(string s,int numRows)    {        if(numRows==1)            return s;        int i=0;        vector<string> combinations;        combinations.resize(numRows);        for(i=0;i<numRows;i++)            combinations[i]="";                int len=s.length();        i=0;        int mod=2*numRows-2;        while(i<len)        {            int j=i%mod;            if(j<numRows)            {                combinations[j].push_back(s[i]);            }            else if(j>=numRows)            {                combinations[mod-j].push_back(s[i]);            }            i++;        }        string ex="";        for(i=0;i<numRows;i++)        {            for(char c:combinations[i])                ex.push_back(c);        }        return ex;    }};


0 0
原创粉丝点击