[LeetCode]ZigZag Conversion
2013-06-03 09:09
239 查看
class Solution { //be careful with the special case //when done with coding, figure out some cases (including illegal, normal, edge cases) //to run with this solution, this will help to get a bug-free solution public: string convert(string s, int nRows) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<vector<char>> zig(nRows, vector<char>()); int zigRow = 0; int sign = 1; for (int i = 0; i < s.size(); ++i) { zig[zigRow].push_back(s[i]); if (nRows == 1)//special case zigRow = 0; else { if(zigRow == nRows-1) sign = -1; if(zigRow == 0) sign = 1; zigRow += sign; } } string ans; for (int i = 0; i < zig.size(); ++i) { for (int j = 0; j < zig[i].size(); ++j) { ans.push_back(zig[i][j]); } } return ans; } };
second time
class Solution { public: string convert(string s, int nRows) { // Start typing your C/C++ solution below // DO NOT write int main() function if(nRows == 1) return s; string result; for(int i = 0; i < nRows; ++i) { int curOriginalIdx = i; int k = 0; while(curOriginalIdx < s.size()) { int nextOriginalIdx; if(k%2 == 0) nextOriginalIdx = curOriginalIdx+2*(nRows-1-i); else nextOriginalIdx = curOriginalIdx+2*(i); if(nextOriginalIdx != curOriginalIdx) result.push_back(s[curOriginalIdx]); curOriginalIdx = nextOriginalIdx; k++; } } return result; } };
相关文章推荐
- 6. ZigZag Conversion leetcode
- leetcode ZigZag Conversion 难度系数3 3.3
- leetcode 6 ZigZag Conversion
- 【LeetCode】ZigZag Conversion 解题报告
- LeetCode题解——ZigZag Conversion
- LeetCode ZigZag Conversion
- leetcode--6. ZigZag Conversion
- 【LeetCode】6.ZigZag Conversion N型排列问题
- Leetcode 6 ZigZag Conversion
- <LeetCode><Easy> 6 ZigZag Conversion
- leetcode ZigZag Conversion
- leetcode — zigzag-conversion
- ZigZag Conversion - LeetCode 6
- 【leetcode】第6题 ZigZag Conversion 题目+解析+代码
- LeetCode ZigZag Conversion
- Leetcode ZigZag Conversion
- 【LeetCode】ZigZag Conversion 题解
- LeetCode ZigZag Conversion 解题报告
- [LeetCode]ZigZag Conversion
- LeetCode 之 ZigZag Conversion — C 实现