ZigZag Conversion

class Solution {
public:
    string convert(string s, int numRows) {
        if(numRows==1)
            return s;
        else
        {
            int len=s.size();
            int count=0;
            int interval=(numRows<<1)-2;
            string res(len,' ');
            for(int j=0;j<len;j=j+interval)
                res[count++]=s[j];
            for(int k=1;k<numRows-1;k++)
            {
                int inter=k<<1;
                for(int j=k;j<len;j+=inter)
                {
                    res[count++]=s[j];
                    inter=interval-inter;
                }
            }
            for(int j=numRows-1;j<len;j=j+interval)
                res[count++]=s[j];
            return res;
        }
    }
};

  

posted @ 2017-12-03 19:53  PirateLHX  阅读(126)  评论(0编辑  收藏  举报