কম্পিউটার টিউটোরিয়াল

সি++-এ X-এর চেয়ে বড় সংখ্যাগত মান বালা সাবস্ট্রিং গণনা

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

উদাহরণ

ইনপুট: str="123", X=12

আউটপুট: X-এর চেয়ে বড় সংখ্যাগত মান বালা সাবস্ট্রিংয়ের সংখ্যা: ২

ব্যাখ্যা: ১২-এর চেয়ে বড় সাবস্ট্রিং: ১২৩ এবং ২৩।

ইনপুট: str="111", X=100

আউটপুট: X-এর চেয়ে বড় সংখ্যাগত মান বালা সাবস্ট্রিংয়ের সংখ্যা: ১

ব্যাখ্যা: শুধু ১১১, ১০০-এর চেয়ে বড়।

অ্যাপ্রোচ

  • str নামে শুধু সংখ্যার স্ট্রিং নেওয়া হয়।
  • len = str.length() দিয়ে দৈর্ঘ্য সংরক্ষণ করা হয়।
  • greater_X(string str, int x) ফাংশন স্ট্রিং এবং এর দৈর্ঘ্য গ্রহণ করে X-এর চেয়ে বড় দশমিক সংখ্যা গঠনকারী সাবস্ট্রিংয়ের গণনা রিটার্ন করে।
  • for লুপ দিয়ে স্ট্রিং ট্রাভার্স করা হয় (i=0 থেকে i
  • যদি str[i] != '0' হয়, তবে সেই ইনডেক্স থেকে শুরু হওয়া সব সাবস্ট্রিং বৈধ।
  • j=1 থেকে i+j<=len পর্যন্ত সাবস্ট্রিং দৈর্ঘ্য বাড়িয়ে str.substr(i,j) কে stoi() দিয়ে দশমিকে রূপান্তর করা হয়। যদি X-এর চেয়ে বড় হয়, count বাড়ানো হয়।

উদাহরণ কোড

#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. সি++ কোড: সংখ্যাসূচক স্ট্রিংয়ের জোড় সাবস্ট্রিং গণনা করুন

  2. C++-এ স্ট্রিংয়ে ৬ দিয়ে বিভাজ্য সাবস্ট্রিং গণনা

  3. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

  4. C++-এ 'a' সংখ্যা 'b'-র চেয়ে বেশি হয় এমন প্রিফিক্সের সংখ্যা (Prefixes with More a than b)