[LeetCode] ZigZag Conversion

来源:互联网 发布:佣金宝交易软件 编辑:程序博客网 时间:2024/05/18 14:12

索引找规律的问题,非首尾两行的需要加一个mid元素,其他的步长都是2(n-1),需要例外的是nRows=1的情况。以前搞了一个非递归汉诺塔问题后,这种问题一般都比较有信心能做出来。

class Solution {public:    string convert(string s, int nRows) {        if (nRows == 1) {            return s;        }        int length = s.size();        stringstream ss;        for (int i = 0; i < nRows; ++i) {            for (int index = i; index < length; index += (nRows -  1) * 2) {                ss << s[index];                if (i > 0 && i < nRows - 1) {                    int mid = index + 2 * (nRows - i - 1);                    if (mid < length) {                        ss << s[mid];                    }                }            }        }        return ss.str();    }};


0 0