Leetcode 6 ZigZag Conversion C#

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

 

Solution:

 

 public string Convert(string s, int numRows) {
        if(numRows <=1) return s;
        string ss = "";
        int len = s.Length;
        int m = 0;
        for(int i =0;i<numRows;i++)
        {
            m = (numRows - i-1);
            int n = i;
            while(n<len)
            {
                ss += s[n];
                int j =n+2*m;
                if(j<len && (m !=0 && m != numRows-1)) ss += s[j];
                n += 2*(numRows -1) ;
            }

        }
        return ss;
    }

 

posted @ 2016-08-24 04:25  咖啡中不塌缩的方糖  阅读(403)  评论(0编辑  收藏  举报