কম্পিউটার

C++ এ সমস্ত প্রদত্ত বাক্যে উপস্থিত শব্দের সংখ্যা


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

দ্রষ্টব্য − সমস্ত ছোট হাতের অক্ষর সম্বলিত শব্দ শুধুমাত্র বিবেচনা করা হবে

যদি বাক্য হয় −

“আমি সি ভাষা শিখছি”

"নতুন জিনিস শেখা সহজ"

"বাচ্চারা স্বাস্থ্যকর অভ্যাস শিখছে"

তিনটির মধ্যেই কেবল "শিক্ষা" বিদ্যমান। সুতরাং গণনা হল 1।

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

ইনপুট − “জামাকাপড় শুকনো ছিল”, “সকল বাচ্চারা খেলছিল”, “সেগুলো সেরা দিন ছিল”

আউটপুট − প্রদত্ত সমস্ত বাক্যে উপস্থিত শব্দের সংখ্যা হল − 2

ব্যাখ্যা − শব্দ "the" এবং "were" সব বাক্যে উপস্থিত থাকে।

ইনপুট − “আমরা স্কুলে যাচ্ছি”, “আপনি যদি ইচ্ছুক হন তাহলে চালিয়ে যান”, “এসব বিক্রি হয়ে গেছে”

আউটপুট − প্রদত্ত সমস্ত বাক্যে উপস্থিত শব্দের সংখ্যা হল −1

ব্যাখ্যা − সমস্ত বাক্যে “are” শব্দটি উপস্থিত থাকে।

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

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

আমরা একটি unordered_map check

ব্যবহার করে অন্য সব বাক্যে ভেক্টর সেটে শব্দ খুঁজে পাব।
  • একটি ভেক্টর vec নিন। এবং বাক্য সম্বলিত সমস্ত স্ট্রিং দিয়ে এটি শুরু করুন।

  • বাক্যের সংখ্যা হবে vec.size().

  • ফাংশন word_sentences(vector vec, int size) বাক্য এবং আকারের ভেক্টর নেয় এবং সমস্ত প্রদত্ত বাক্যে উপস্থিত শব্দের গণনা প্রদান করে

  • 0 হিসাবে প্রাথমিক গণনা নিন।

  • একটি বাক্যে পৃথক শব্দ সংরক্ষণ করতে অস্থায়ী স্ট্রিং str নিন।

  • যখন লুপ ব্যবহার করে vec[0] তে সংরক্ষিত প্রথম বাক্যটি অতিক্রম করুন।

  • অন্য যখন লুপ ব্যবহার করে এটির ভিতরে, স্থানের সম্মুখীন না হওয়া পর্যন্ত str[] এ একটি পৃথক শব্দ বের করুন।

  • এখন যেহেতু আমাদের কাছে str-এ প্রথম বাক্যের একটি শব্দ আছে, সেটে এক জোড়া (str,true) যোগ করুন।

  • vec[0]-এ সংরক্ষিত বাক্যের সমস্ত শব্দের জন্য এটি করুন।

  • ভেক্টর সেটে এখন সত্য মান সহ প্রথম বাক্যের সমস্ত শব্দের জোড়া রয়েছে৷

  • j=1 থেকে j

  • vec[j]-এ বর্তমান বাক্য থেকে প্রতিটি শব্দ বের করে str.

    এ সংরক্ষণ করুন
  • check[str]=true.

    ব্যবহার করে মানচিত্র পরীক্ষায় এই শব্দগুলোকে সত্য হিসেবে চিহ্নিত করুন
  • vec[j].

    -এ বর্তমান বাক্যের সমস্ত শব্দের জন্য এটি করুন
  • লুপ, ট্রাভার্স ভেক্টর সেট এবং বর্তমান বাক্যের জন্য ব্যবহার করে দেখুন এই শব্দগুলিও সেটে আছে কিনা।

  • লুপের জন্য ব্যবহার করে, ট্রাভার্স ভেক্টর আবার সেট করুন।

  • যদি বর্তমান শব্দটি সমস্ত বাক্যে উপস্থিত হয় তবে সেট[k].সেকেন্ড সত্য হবে। যদি হ্যাঁ ইনক্রিমেন্ট কাউন্ট।

  • শেষে আমাদের কাছে পরিবর্তনশীল গণনা থাকবে যেখানে সব বাক্যে শব্দ থাকবে।

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

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int words_sentences(vector<string> vec, int size){
   int count = 0;
   int i = 0;
   string str;
   unordered_map<string, bool> check;
   vector<pair<string, bool>> set ;
   pair<string, bool> 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<string> 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. সমস্ত সম্ভাব্য N সংখ্যা সংখ্যা গণনা করুন যা C++ এ প্রদত্ত শর্ত পূরণ করে

  2. C++ এ অ্যারের অক্ষর ব্যবহার করে সম্ভব এমন সব বৈধ শব্দ প্রিন্ট করুন

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

  4. C++ এ একটি প্রদত্ত স্ট্রিং-এ “1(0+)1”-এর সমস্ত প্যাটার্ন খুঁজুন