使用贪心法,保证'.'在路灯照射的最左端。
使用索引i遍历数组,发现'.'后,在i+1位置放置路灯,同时,i,i+1,i+2全部照亮,遍历从i+3位置继续。
代码如下:
#include <iostream>
#include <vector>
using namespace std;
int main() {
int T, n, x;
cin >> T;
while (T--) {
cin >> n;
vector<char> A(n);
for (int i = 0; i < n; ++i)
cin >> A[i];
int c = 0;
for (int i = 0; i < n; ++i) {
if (A[i] == '.') {
++c;
i += 2;
}
}
cout << c << endl;
}
return 0;
} 
京公网安备 11010502036488号