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