算法题--路灯照亮

xiaoxiao2021-02-28  46

题目描述:

一段路灯,有需要照亮的地方,设为'.',可以不照亮的地方 'X',一个路灯最多着亮3格;前-自己-后

给一段string,问最少要多少数量的路灯:

遇到有间隔的直接将那一块点亮,路灯加1

int main(){ string s; cin >> s; int i = 0; int ret = 0; int n = s.size(); if (s.find('.')==-1) {        cout << 0; return 0; } while (i<n) { if (s[i] == '.') { s[i] = 'X'; if(i+1<n) s[i+1] = 'X'; if(i+2<n)s[i+2] = 'X'; ret++; i = i + 3; } i++; } cout << ret<<endl; return 0;

}

当时通过率为0:

在于对i+1和i+2没有判断。可能导致字符串越界

转载请注明原文地址: https://www.6miu.com/read-1600321.html

最新回复(0)