Letcode-6、Z字形变换

class Solution {
public:
    string convert(string s, int numRows) {
        string t;
        int len = s.length();
        int n;
        if (numRows > 2)         //这个地方要特殊处理一下,当是只有一行或是两行时候两列中间没有字母
            n = numRows * 2 - 2;
        else  n = numRows;
        for (int i = 0; i < numRows; i++) {
            if (i == 0 || i == numRows - 1) {
                int id = i;
                while (id < len) t+=s[id], id += n;                                                                                                                        
            }
            else {
                int id = i;
                while (id < len) {
                    t+= s[id];
                    id = id + (numRows - i-1)*2;
                    if (id < len) t+= s[id];
                    else break;
                    id = id + (i) * 2;
                }
            }
        }
        return t;
    }
};

猜你喜欢

转载自www.cnblogs.com/chaiyinlei/p/12359499.html