classSolution { public: intfindPoisonedDuration(vector<int>& timeSeries, int duration) { int ret = 0; for (int i = 1; i < timeSeries.size(); ++i) { int x = timeSeries[i] - timeSeries[i - 1]; if (x >= duration) { ret += duration; } else { ret += x; } } return ret + duration; } };
classSolution { public: string convert(string s, int numRows) { if (numRows == 1) { return s; } string ret; int n = s.size(); int d = 2 * numRows - 2; for (int i = 0; i < n; i += d) { ret += s[i]; } for (int k = 1; k < numRows - 1; ++k) { for (int i = k, j = d - k; i < n || j < k; i += d, j += d) { if (i < n) { ret += s[i]; } if (j < n) { ret += s[j]; } } } for (int i = numRows - 1; i < n; i += d) { ret += s[i]; } return ret; } };
classSolution { public: string countAndSay(int n) { string ret = "1"; for (int i = 1; i < n;++i) { string tmp; int len = ret.size(); for (int left = 0, right = 0; right < len; ) { while (ret[left] == ret[right]) { right++; } tmp += to_string(right - left) + ret[left]; left = right; } ret = tmp; } return ret; } };