leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

0722.cpp (1008B)


0 class Solution {
1 public:
2 vector<string> removeComments(vector<string> &source) {
3 vector<string> res = {""};
4 bool block = false;
6 for (const auto &l : source) {
7 int j = 0, i;
9 for (i = 0; i < size(l); i++) {
10 if (!block && l[i] == '/' && l[i + 1] == '/')
11 break;
12 else if (!block && l[i] == '/' && l[i + 1] == '*') {
13 if (i != j) res.back() += l.substr(j, i - j);
15 i++; // prevent /*/ as close
16 block = true;
17 } else if (block && l[i] == '*' && l[i + 1] == '/') {
18 j = i + 2;
19 i++; // prevent */* as open
20 block = false;
21 }
22 }
24 if (!block && i != j) res.back() += l.substr(j, i - j);
25 if (!block && !res.back().empty()) res.push_back("");
26 }
28 if (res.back().empty()) res.pop_back();
29 return res;
30 }
31 };