1
class Solution {
2
public:
3
vector<int> platesBetweenCandles(string s, vector<vector<int>> &queries) {
4
vector<int> candlesIndex;
5

6
for (int i = 0; i < s.length(); i++) {
7
if (s[i] == '|') candlesIndex.push_back(i);
8
}
9

10
vector<int> ans;
11
for (auto q : queries) {
12
int firstCandleIndex =
13
lower_bound(candlesIndex.begin(), candlesIndex.end(), q[0]) - candlesIndex.begin();
14
int lastCandleIndex =
15
upper_bound(candlesIndex.begin(), candlesIndex.end(), q[1]) - candlesIndex.begin() - 1;
16

17
if (lastCandleIndex <= firstCandleIndex) {
18
ans.push_back(0);
19
continue;
20
}
21

22
int tempAns = candlesIndex[lastCandleIndex] - candlesIndex[firstCandleIndex] -
23
(lastCandleIndex - firstCandleIndex);
24

25
ans.push_back(tempAns);
26
}
27
return ans;
28
}
29
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0