在C ++中找到信号到达字符串中所有位置所花费的时间
在本教程中,我们将讨论一个程序,以查找信号到达字符串中所有位置所花费的时间。
为此,我们将提供一个包含“x”和“o”的字符串。信号源自“x”,并且在两个方向上传播,并在一个单位时间内改变一个“o”值。我们的任务是计算将整个字符串转换为“x”的完整时间。
示例
#include <bits/stdc++.h>
using namespace std;
//计算所需的总时间
int findMaximumDuration(string s, int n) {
int right = 0, left = 0;
int count = 0, maximumLength = INT_MIN;
s = s + '1';
for (int i = 0; i <= n; i++) {
if (s[i] == 'o')
count++;
else {
if (count > maximumLength) {
right = 0;
left = 0;
if (s[i] == 'x')
right = 1;
if (((i - count) > 0) && (s[i - count - 1] == 'x'))
left = 1;
count = ceil((double)count / (right + left));
maximumLength = max(maximumLength, count);
}
count = 0;
}
}
return maximumLength;
}
int main() {
string str = "xooxoooxxoooxoooxooxooox";
int length = str.size();
cout << findMaximumDuration(str, length);
return 0;
}输出结果
2
热门推荐
10 老公生日祝福语简短好看
11 道教生日祝福语简短大全
12 老同学十一祝福语简短
13 牙医生日祝福语简短
14 新年给妈妈简短祝福语
15 小孩想说的祝福语简短
16 预祝高尔夫的祝福语简短
17 毕业结婚祝福语简短精辟
18 下雪路滑祝福语简短