কম্পিউটার

C++ এ X এর থেকে বেশি সাংখ্যিক মান সহ সাবস্ট্রিংগুলির সংখ্যা গণনা করুন


আমাদের 0 থেকে 9 সংখ্যার একটি স্ট্রিং দেওয়া হয়েছে৷ স্ট্রিংটি একটি দশমিক সংখ্যাকে উপস্থাপন করে৷ লক্ষ্য হল এমন সমস্ত সাবস্ট্রিং খুঁজে বের করা যা একটি দশমিক সংখ্যাকে প্রতিনিধিত্ব করে যা X সংখ্যার চেয়ে বড়। শর্ত হল সাবস্ট্রিং 0 দিয়ে শুরু হওয়া উচিত নয়। যেমন “2021”, “02”, “021”। "0" অন্তর্ভুক্ত করা হবে না।

আমরা সব সাবস্ট্রিং-এর প্রথম মান পরীক্ষা করে এটি করব, যদি এটি 0-এর বেশি হয় তাহলে stoi() ব্যবহার করে পূর্ণসংখ্যাতে রূপান্তর করে সেই সূচক থেকে সাবস্ট্রিং তৈরি করা শুরু করি। যদি সাবস্ট্রিং>এক্স ইনক্রিমেন্ট কাউন্ট।

আসুন উদাহরণ দিয়ে বুঝতে পারি।

ইনপুট − str=”123” X=12

আউটপুট − X-এর থেকে বেশি সাংখ্যিক মান সহ সাবস্ট্রিংগুলির সংখ্যা হল − 2

ব্যাখ্যা সাবস্ট্রিং> 12 হল 123 এবং 23।

ইনপুট − str=”111” X=100

আউটপুট − বাইনারি স্ট্রিং-এ এমনকি দশমিক মানের সাবস্ট্রিংয়ের সংখ্যা হল − 1

ব্যাখ্যা শুধুমাত্র 111 হল 100 এর থেকে বড়।

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • আমরা একটি স্ট্রিং স্ট্রিংকে শুধুমাত্র সংখ্যার স্ট্রিং হিসাবে নিই।

  • str এর দৈর্ঘ্য len=str.length()

    এ সংরক্ষণ করুন
  • ফাংশন greater_X(string str, int x) স্ট্রিং এবং এর দৈর্ঘ্য নেয় এবং সাবস্ট্রিংগুলির একটি গণনা প্রদান করে যা X-এর চেয়ে বড় একটি দশমিক সংখ্যা গঠন করে।

  • FOR লুপ ব্যবহার করে ট্র্যাভার্স স্ট্রিং

  • সূচী i=0 থেকে শুরু করে i

  • যদি কোন str[i]!='0’ মানে এটি থেকে শুরু হওয়া সমস্ত সাবস্ট্রিং বৈধ হবে।

  • সূচী j=1 থেকে শুরু করে i+j

  • stoi() ব্যবহার করে সাবস্ট্রিং str.substr(i,j) কে দশমিকে রূপান্তর করুন। যদি এটি X এর বেশি হয়। বৃদ্ধির সংখ্যা।

  • ফলাফল হিসাবে রিটার্ন গণনা।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int greater_X(string str, int x){
   int count = 0;
   int len = str.length();
   for (int i = 0; i < len; ++i){
      if(str[i] != '0'){
         for (int j=1; (i + j) <= len; ++j){
            if (stoi(str.substr(i, j)) > x){
               count++;
            }
         }
      }
   }
   return count;
}
int main(){
   string str = "987";
   int x = 100;
   cout<<"Count of number of substrings with numeric value greater than X are: "<<greater_X(str, x);
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Count of number of substrings with numeric value greater than X are: 1

  1. সাংখ্যিক স্ট্রিং এর জোড় সাবস্ট্রিং সংখ্যা গণনা করতে C++ কোড

  2. C++ এ পূর্ণসংখ্যার একটি স্ট্রিংয়ে 6 দ্বারা বিভাজ্য সাবস্ট্রিংয়ের সংখ্যা

  3. C++ ব্যবহার করে একটি স্ট্রিং এর সাবস্ট্রিং এর সংখ্যা খুঁজুন

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