কম্পিউটার

C++-এ b-এর চেয়ে বেশি উপসর্গ


এই সমস্যায়, আমাদের শুধুমাত্র a এবং b এবং একটি পূর্ণসংখ্যা N সম্বলিত স্ট্রিং দেওয়া হয়েছে যাতে str n বার যুক্ত করে একটি স্ট্রিং তৈরি করা হয়। আমাদের কাজ হল মোট সাবস্ট্রিং সংখ্যা মুদ্রণ করা যেখানে a'-এর গণনা b-এর গণনার চেয়ে বেশি।

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক

Input: aab 2
Output: 9
Explanation: created string is aabaab.
Substrings with count(a) > count(b) : ‘a’ , ‘aa’, ‘aab’, ‘aaba’, ‘aabaa’, ‘aabaab’, ‘aba’, ‘baa’, ‘abaa’.

এই সমস্যাটি সমাধান করার জন্য, আমাদের স্ট্রিংটিতে প্রয়োজনীয় উপসর্গ উপসেট রয়েছে কিনা তা পরীক্ষা করতে হবে। এখানে, আমরা স্ট্রিং স্ট্রিংটি সম্পূর্ণ সংস্করণ নয় তা পরীক্ষা করব। এখানে, w উপসর্গের উপর ভিত্তি করে স্ট্রিং পরীক্ষা করবে এবং a এবং b এর সংঘটনের সংখ্যা।

এই প্রোগ্রামটি আমাদের সমাধানের বাস্তবায়ন দেখাবে

উদাহরণ

#include <iostream>
#include <string.h>
using namespace std;
int prefixCount(string str, int n){
   int a = 0, b = 0, count = 0;
   int i = 0;
   int len = str.size();
   for (i = 0; i < len; i++) {
      if (str[i] == 'a')
         a++;
      if (str[i] == 'b')
         b++;
      if (a > b) {
      count++;
   }
}
if (count == 0 || n == 1) {
   cout<<count;
   return 0;
}
if (count == len || a - b == 0) {
   cout<<(count*n);
   return 0;
}
int n2 = n - 1, count2 = 0;
while (n2 != 0) {
   for (i = 0; i < len; i++) {
      if (str[i] == 'a')
         a++;
      if (str[i] == 'b')
         b++;
      if (a > b)
      count2++;
   }
   count += count2;
   n2--;
   if (count2 == 0)
      break;
   if (count2 == len) {
      count += (n2 * count2);
      break;
   }
   count2 = 0;
   }
   return count;
}
int main() {
   string str = "aba";
   int N = 2;
   cout<<"The string created by using '"<<str<<"' "<<N<<" times has ";
   cout<<prefixCount(str, N)<<" substring with count of a greater than count of b";
   return 0;
}

আউটপুট

The string created by using 'aba' 2 times has 5 substring with count of a greater than count of b

  1. C++ এ N ভাগ করার ক্ষেত্রে ভাগফলের চেয়ে বেশি সেট বিট থাকা ভাজকের সংখ্যা

  2. C++ এ প্রদত্ত অঙ্কের যোগফল সহ সংখ্যাগুলি (N এর চেয়ে ছোট বা সমান) গণনা করুন

  3. সর্বাধিক সাব-ম্যাট্রিক্স এলাকা যার সংখ্যা C++ প্রোগ্রামে 0 এর গণনার চেয়ে 1 এর এক বেশি

  4. C++ এ m সমরেখা সহ মোট n বিন্দু সহ ত্রিভুজের গণনা