আমাদের একটি স্ট্রিং str (বাক্য) এবং একটি সংখ্যা k দেওয়া আছে। লক্ষ্য হলো str-এ কতগুলো শব্দের ASCII মান যোগফল k-র চেয়ে ছোট এবং কতগুলো বড় সেটা বের করা।
ASCII − প্রতিটি ক্যারেক্টরের জন্য অনন্য কোড হিসেবে割り当て করা সংখ্যা।
উদাহরণ দিয়ে বুঝি
ইনপুট − str= "This is ASCII", k=300
আউটপুট − ASCII যোগফল k-র চেয়ে ছোট শব্দ: ১, বড় শব্দ: ২
ব্যাখ্যা − শব্দ "is" এর ASCII যোগফল ৩০০-র চেয়ে ছোট, বাকি দুটি বড়।
ইনপুট − str= "set set set", k=300
আউটপুট − ASCII যোগফল k-র চেয়ে ছোট শব্দ: ০, বড় শব্দ: ৩
ব্যাখ্যা − সব শব্দ একই এবং ASCII যোগফল ৩০০-র চেয়ে বড়।
প্রোগ্রামে ব্যবহৃত পদ্ধতি
for লুপ দিয়ে স্ট্রিং ট্রাভার্স করব। স্পেস পাওয়ার পর প্রতিটি শব্দের ক্যারেক্টরের ASCII যোগফল temp-এ কাউন্ট করব। শব্দ শেষে temp < k চেক করব। ছোট হলে কাউন্ট বাড়াব।
- স্ট্রিং
strএবং ইন্টিজারkনিন। words_less_greater(string str, int k, int length)ফাংশন স্ট্রিং নিয়ে ASCII যোগফলk-র চেয়ে ছোট ও বড় শব্দ কাউন্ট করে।temp=0(প্রতি শব্দের ASCII যোগফল),count=0(ছোট শব্দ কাউন্ট),total=0(মোট শব্দ)।i=0থেকেlengthপর্যন্ত লুপে:- যদি
str[i]==' '(স্পেস), শব্দ শেষ:temp < kহলেcount++এবংtotal++।temp=0রিসেট। - অন্যথায়
temp += str[i](ASCII যোগফল বাড়ান)।
- যদি
- লুপ শেষে শেষ শব্দের জন্য একবার চেক করুন।
total++এবংtemp < kহলেcount++।- ফলাফল প্রিন্ট করুন: ছোট শব্দ =
count, বড় শব্দ =total - count।
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
void words_less_greater(string str, int k, int length) {
int temp = 0;
int total = 0;
int count = 0;
for (int i = 0; i < length; ++i) {
if (str[i] == ' ') {
if (temp < k) {
count++;
}
temp = 0;
total++;
} else {
temp += str[i];
}
}
total++;
if (temp < k) {
count++;
}
cout << "Count of number of words having sum of ASCII values less than k are: " << count;
cout << "\nCount of number of words having sum of ASCII values greater than k are: " << total - count;
}
int main() {
string str = "tutorials point";
int k = 900;
int length = str.length();
words_less_greater(str, k, length);
return 0;
}
আউটপুট
Count of number of words having sum of ASCII values less than k are: 1 Count of number of words having sum of ASCII values greater than k are: 1