标签:leetcode c++ python java 算法
索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql)
Github:
https://github.com/illuz/leetcode
题目:https://oj.leetcode.com/problems/zigzag-conversion/
代码(github):https://github.com/illuz/leetcode
把一个字符串按横写的折线排列。
直接模拟就行了。
class Solution { public: string convert(string s, int nRows) { if (nRows == 1) return s; int step = nRows * 2 - 2, len = s.length(); string ret = ""; // first row for (int i = 0; i < len; i += step) ret += s[i]; for (int i = 1; i < nRows - 1; i++) { for (int j = i; j < len; j += step) { ret += s[j]; if (j + (step - i * 2) < len) ret += s[j + (step - i * 2)]; } } // last row for (int i = nRows - 1; i < len; i += step) ret += s[i]; return ret; } };
Java:
public class Solution { public String convert(String s, int nRows) { if (nRows == 1) return s; int step = nRows * 2 - 2, len = s.length(); String ret = ""; // first row for (int i = 0; i < len; i += step) ret += s.charAt(i); for (int i = 1; i < nRows - 1; i++) { for (int j = i; j < len; j += step) { ret += s.charAt(j); if (j + (step - i * 2) < len) ret += s.charAt(j + (step - i * 2)); } } // last row for (int i = nRows - 1; i < len; i += step) ret += s.charAt(i); return ret; } }
Python:
class Solution: # @return a string def convert(self, s, nRows): if nRows == 1: return s step = nRows * 2 - 2 # first row ret = s[::step] for i in range(1, nRows - 1): for j in range(i, len(s), step): ret += s[j] if j + (step - i * 2) < len(s): ret += s[j + (step - i * 2)] # last row ret += s[nRows - 1::step] return ret
[LeetCode] 006. ZigZag Conversion (Easy) (C++/Java/Python)
标签:leetcode c++ python java 算法
原文地址:http://blog.csdn.net/hcbbt/article/details/43975819