使用贪心法,保证'.'在路灯照射的最左端。
使用索引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; }