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

C++-এ দৈর্ঘ্য k-এর সাবস্ট্রিং যাদের ASCII মান সমষ্টি k দিয়ে বিভাজ্য তাদের সংখ্যা বের করা

এখানে আমরা আরেকটি সমস্যা দেখব, যেখানে একটি স্ট্রিং এবং অন্য একটি ইন্টিজার মান k দেওয়া আছে। আমাদের দৈর্ঘ্য k-এর সাবস্ট্রিং গুলোর মধ্যে যাদের ক্যারেক্টার গুলোর ASCII মান সমষ্টি k দিয়ে বিভাজ্য, তাদের সংখ্যা বের করতে হবে।

মনে করুন একটি স্ট্রিং "BCGABC"। এবং k এর মান ৩। এখানে স্ট্রিং BCG-এর ASCII সমষ্টি ৩০০, ABC-এর ASCII সমষ্টি ২৯৪, যেগুলো k = ৩ দিয়ে বিভাজ্য।

পদ্ধতিটি সহজ। প্রথমে প্রথম সাবস্ট্রিং-এর ক্যারেক্টার গুলোর ASCII মান বের করতে হবে, যেসাবস্ট্রিং-এর দৈর্ঘ্য k। আমাদের স্লাইডিং উইন্ডো টেকনিক ব্যবহার করতে হবে এবং উইন্ডোর প্রথম ক্যারেক্টারটির ASCII বিয়োগ করতে হবে, এবং স্লাইড করার পর আসা পরবর্তী ক্যারেক্টারটির ASCII যোগ করতে হবে। প্রতিটি ধাপে যখন সমষ্টি k দিয়ে বিভাজ্য হয়, তখন কাউন্ট বাড়াতে হবে।

উদাহরণ (C++ কোড)

#include <iostream>
using namespace std;

int countKLenSubstr(string str, int k) {
    int len = str.length();
    int sum = 0;
    int count = 0;
    for (int i = 0; i < len; i++)
        sum += str[i]; // প্রথম সাবস্ট্রিং-এর ASCII সমষ্টি
    if (sum % k == 0)
        count++;
    for (int i = k; i < len; i++) {
        int prev_ascii = str[i-k]; // উইন্ডোর প্রথম ক্যারেক্টারের ASCII
        sum -= prev_ascii;
        sum += str[i];
        if (sum % k == 0)
            count += 1;
    }
    return count;
}

int main() {
    string s = "BCGABC";
    int k = 3;
    cout << "Number of substrings: " << countKLenSubstr(s, k);
}

আউটপুট

Number of substrings: 2
  1. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

  2. যে প্রাকৃতিক সংখ্যার ফ্যাক্টোরিয়াল x দিয়ে বিভাজ্য, সেটি খুঁজে বের করা C++-তে

  3. সি++ প্রোগ্রাম: D দিয়ে বিভাজ্য N অঙ্কের সংখ্যা খুঁজে বের করা

  4. ক্যারেক্টারের ASCII মান বের করার C++ প্রোগ্রাম