আমরা স্ট্রিং আকারে একাধিক বাক্য দেওয়া হয়. লক্ষ্য হল সমস্ত বাক্যে বিদ্যমান শব্দের সংখ্যা গণনা করা।
দ্রষ্টব্য − সমস্ত ছোট হাতের অক্ষর সম্বলিত শব্দ শুধুমাত্র বিবেচনা করা হবে
যদি বাক্য হয় −
“আমি সি ভাষা শিখছি”
"নতুন জিনিস শেখা সহজ"
"বাচ্চারা স্বাস্থ্যকর অভ্যাস শিখছে"
তিনটির মধ্যেই কেবল "শিক্ষা" বিদ্যমান। সুতরাং গণনা হল 1।
আসুন উদাহরণ দিয়ে বুঝতে পারি
ইনপুট − “জামাকাপড় শুকনো ছিল”, “সকল বাচ্চারা খেলছিল”, “সেগুলো সেরা দিন ছিল”
আউটপুট − প্রদত্ত সমস্ত বাক্যে উপস্থিত শব্দের সংখ্যা হল − 2
ব্যাখ্যা − শব্দ "the" এবং "were" সব বাক্যে উপস্থিত থাকে।
ইনপুট − “আমরা স্কুলে যাচ্ছি”, “আপনি যদি ইচ্ছুক হন তাহলে চালিয়ে যান”, “এসব বিক্রি হয়ে গেছে”
আউটপুট − প্রদত্ত সমস্ত বাক্যে উপস্থিত শব্দের সংখ্যা হল −1
ব্যাখ্যা − সমস্ত বাক্যে “are” শব্দটি উপস্থিত থাকে।
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
এই পদ্ধতিতে আমরা প্রথমে ভেক্টর
আমরা একটি unordered_map
-
একটি ভেক্টর
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