leetcode6. ZigZag Conversion

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode6. ZigZag Conversion相关的知识,希望对你有一定的参考价值。

@requires_authorization
@author johnsondu
@create_time 2015.7.10 10:35
@url https://leetcode.com/problems/zigzag-conversion/
/**
 * 对于此题,仅仅须要找出相应的字母所在的编号与Z型编码的关系。
 * 对于第一行和最后一行进行单处处理。
 * 而对中间的numRows-2行。则分奇数列和偶数列进行推导。
 * 奇数列从下往上,偶数列从上往下。

* 时间复杂度(O(n)) * 空间复杂度(O(1)) */ class Solution { public: string convert(string s, int numRows) { // return if numRows == 1 if(numRows < 2) return s; string ans = ""; int len = s.size(); int idx = 0; // Process the first line while(idx < len){ ans = ans + s[idx]; idx = idx + (numRows-1) * 2; } // Process 2-numRows line for(int i = 1; i < numRows - 1; i ++) { // flag: Distinguish the odd and the even column bool flag = false; idx = i; if(idx >= len) break; ans += s[i]; while(idx <= len){ if(!flag) { idx = idx + (numRows - i - 1) * 2; if (idx < len) ans += s[idx]; flag = true; } else{ idx = idx + i * 2; if(idx < len) ans += s[idx]; flag = false; } } } // Process the last line idx = numRows - 1; while(idx < len){ ans = ans + s[idx]; idx = idx + (numRows - 1) * 2; } return ans; } };

以上是关于leetcode6. ZigZag Conversion的主要内容,如果未能解决你的问题,请参考以下文章

leetcode6. ZigZag Conversion

33.leetcode6_zigzag_conversion

6. 锯齿形变换 [leetcode 6: ZigZag Conversion]

6. 锯齿形变换 [leetcode 6: ZigZag Conversion]

LeetCode6. Z 字形变换

LeetCode6 Z字形排列