用 C++,找出訊號到達字串中所有位置所用的時間
在本教程中,我們將討論一個程式,找出訊號到達字串中所有位置所用的時間
為此,我們會提供一個包含 ‘x’ 和 ‘o’ 的字串。一個訊號源自 ‘x’,並向兩個方向傳播,在單位時間內將一個 'o' 值更改為 'x'。我們的任務是計算將整個字串轉換為 'x' 需要的總時間。
示例
#include <bits/stdc++.h>
using namespace std;
//calculating the total required time
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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
安卓
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP