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;
    }
原文地址:https://www.cnblogs.com/renyualbert/p/5801426.html