এই টিউটোরিয়ালে, আমরা একটি স্ট্রিং এর সমস্ত অবস্থানে পৌঁছাতে সিগন্যালের জন্য সময় নেওয়ার জন্য একটি প্রোগ্রাম নিয়ে আলোচনা করব
এর জন্য আমাদেরকে 'x' এবং 'o' সম্বলিত একটি স্ট্রিং দেওয়া হবে। একটি সংকেত 'x' থেকে উৎপন্ন হয় এবং এক একক সময়ে একটি 'o' মান পরিবর্তন করে উভয় দিকে ভ্রমণ করে। আমাদের কাজ হল সম্পূর্ণ স্ট্রিংকে ‘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