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

সব দিয়ে गये বাক্যে উপস্থিত শব্দের গণনা (C++ প্রোগ্রাম)

আমাদের একাধিক বাক্য স্ট্রিং রূপে দেওয়া আছে। লক্ষ্য হল সকল বাক্যে যেসব শব্দ আছে তাদের সংখ্যা গণনা করা।

নোট: শুধু ছোট হাতের অক্ষর (lowercase) থাকা শব্দগুলোই বিবেচনা করা হবে।

যদি বাক্যগুলো হয়:

"I am learning C language"
"learning new things is easy"
"Kids are learning healthy habits"

শুধু "learning" তিনों বাক্যে আছে। তাই গণনা ১।

উদাহরণ

ইনপুট: "The clothes were dry", "All the kids were playing", "Those were the best days"

আউটপুট: সব দিয়ে गये বাক্যে উপস্থিত শব্দের গণনা: 2

ব্যাখ্যা: "the" এবং "were" শব্দ দুটি সকল বাক্যে আছে।

ইনপুট: "We are going to school", "If you are willing then continue", "All these are sold"

আউটপুট: সব দিয়ে गये বাক্যে উপস্থিত শব্দের গণনা: 1

ব্যাখ্যা: "are" শব্দটি সকল বাক্যে আছে।

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

এই পদ্ধতিতে আমরা প্রথম বাক্যের শব্দগুলো vector> set-এ সংরক্ষণ করব।

তারপর অন্য সকল বাক্যে সেটের শব্দগুলো খুঁজে বের করব unordered_map check ব্যবহার করে।

  • vector vec নিন এবং সেটিকে সকল বাক্য স্ট্রিং দিয়ে আরম্ভিক করুন।
  • বাক্যের সংখ্যা হবে vec.size()।
  • words_sentences(vector vec, int size) ফাংশন বাক্য ভেক্টর এবং আকার নেয় এবং সব বাক্যে উপস্থিত শব্দের গণনা ফেরত দেয়।
  • আরম্ভিক গণনা ০ নিন।
  • স্ট্রিং str নিন বাক্যে পৃথক শব্দ সংরক্ষণের জন্য।
  • প্রথম বাক্য vec[0]-এ while লুপ দিয়ে ট্রভার্স করুন।
  • এর ভিতরে আরেকটি while লুপ দিয়ে স্পেস পাওয়া পর্যন্ত পৃথক শব্দ str[]-এ বের করুন।
  • এখন str-এ প্রথম বাক্যের একটি শব্দ আছে, (str,true) জোড়া সেটে যোগ করুন।
  • vec[0]-এ সংরক্ষিত বাক্যের সকল শব্দের জন্য এটি করুন।
  • ভেক্টর set-এ এখন প্রথম বাক্যের সকল শব্দ true ভ্যালু সহ জোড়া হিসেবে আছে।
  • ২য় বাক্য থেকে শেষ বাক্য পর্যন্ত vec-এ for লুপ দিয়ে ট্রভার্স করুন j=1 থেকে j
  • vec[j]-এ বর্তমান বাক্য থেকে প্রতিটি শব্দ বের করে str-এ সংরক্ষণ করুন।
  • এই শব্দগুলো map check-এ true হিসেবে চিহ্নিত করুন check[str]=true ব্যবহার করে।
  • vec[j]-এ বর্তমান বাক্যের সকল শব্দের জন্য এটি করুন।
  • for লুপ দিয়ে vector set ট্রভার্স করুন এবং বর্তমান বাক্যে এই শব্দগুলো check-এ আছে কিনা সেটি set-এ খুঁজে বের করুন।
  • for লুপ দিয়ে vector set আবার ট্রভার্স করুন।
  • যদি বর্তমান শব্দ সকল বাক্যে থাকে তবে set[k].second true হবে। যদি হ্যাঁ, count বাড়ান।
  • শেষে count ভেরিয়েবলে সকল বাক্যে উপস্থিত শব্দের সংখ্যা থাকবে।
  • ফলাফল হিসেবে count ফেরত দিন।
C++ প্রোগ্রাম উদাহরণ
#include 
using namespace std;

int words_sentences(vector vec, int size) {
    int count = 0;
    int i = 0;
    string str;
    unordered_map check;
    vector> set;
    pair str_bool;
    
    while (i < vec[0].size()) {
        str = "";
        while (i < vec[0].size() && vec[0][i] != ' ') {
            str += vec[0][i];
            i++;
        }
        i++;
        if (str != "") {
            str_bool = make_pair(str, true);
            set.push_back(str_bool);
        }
    }
    
    for (int j = 1; j < size; j++) {
        check.clear();
        i = 0;
        while (i < vec[j].size()) {
            str = "";
            while (i < vec[j].size() && vec[j][i] != ' ') {
                str += vec[j][i];
                i++;
            }
            i++;
            if (str != "") {
                check[str] = true;
            }
        }
        for (int k = 0; k < set.size(); k++) {
            if (set[k].second != false && check[set[k].first] == false) {
                set[k].second = false;
            } else if (set[k].second != false && check[set[k].first] == true) {
                check[set[k].first] = false;
            }
        }
    }
    
    for (int k = 0; k < set.size(); k++) {
        if (set[k].second == true) {
            count++;
        }
    }
    return count;
}

int main() {
    vector vec;
    vec.push_back("Honesty is the best policy");
    vec.push_back("policy varies from company to company");
    vec.push_back("Employee should follow the policy of a company");
    int size = vec.size();
    cout << "Count of words that are present in all the given sentences are: " << words_sentences(vec, size);
    return 0;
}
আউটপুট
Count of words that are present in all the given sentences are: 1
  1. C++-এ দেওয়া শর্ত পূরণ করে N-ডিজিট সংখ্যা গণনা

  2. C++-এ ক্যারেক্টার অ্যারে থেকে বৈধ শব্দগুলো প্রিন্ট করুন (Trie ব্যবহার করে)

  3. C++-এ Nটি রেঞ্জ থেকে সব উপাদান কভার করা এমন একটি রেঞ্জ খুঁজে বের করা

  4. সি++ প্রোগ্রাম: দিয়ে থাকা স্ট্রিং-এ "1(0+)1" প্যাটার্নের সব.matches খুঁজে বের করা