ZigZag Conversion

来源:互联网 发布:宜兴淘宝运营招聘网 编辑:程序博客网 时间:2024/05/24 04:49

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 t=(numRows<<1)-2;        int len=s.length();        string ans="";        for(int i=0;i<=t/2;++i)        {            for(int j=0;j<len;++j)            {                if(j%t==i||(j+i)%t==0)                {                    ans+=(s[j]);                }            }        }        return ans;    }};


原创粉丝点击