এই সমস্যাতে, আমাদের একটি স্ট্রিং str দেওয়া হয়েছে। আমাদের কাজ হল স্ট্রিং-এ সবচেয়ে ছোট এবং বড় শব্দ খুঁজে বের করার প্রোগ্রাম লিখা।
সমস্যা বর্ণনা: এখানে একটি স্ট্রিং দেওয়া আছে, আমাদের সব শব্দের মধ্যে যেটির দৈর্ঘ্য সর্বাধিক এবং যেটির দৈর্ঘ্য ন্যূনতম তা খুঁজে বের করতে হবে। শব্দগুলো সাদা স্পেস (whitespace) বা null(\0) ক্যারেক্টার দ্বারা পৃথক করা থাকে।
উদাহরণ:
ইনপুট
str = "Learn Programming at TutorialsPoint"
আউটপুট
smallest word = at largest word = TutorialsPoint
সমাধানের পদ্ধতি
সবচেয়ে ছোট এবং বড় শব্দ খুঁজে বের করার জন্য, আমরা প্রতিটি শব্দের দৈর্ঘ্য দুটি ইনডেক্স ব্যবহার করে বের করব - একটি শব্দের শুরু এবং অন্যটি শব্দের শেষ যা স্পেস ' ' বা '\0' ক্যারেক্টার দ্বারা চিহ্নিত। তারপর শুরু এবং শেষ ইনডেক্স ব্যবহার করে maxLength এবং minLength বের করব। এবং বর্তমান শব্দের দৈর্ঘ্যের উপর ভিত্তি করে smallestWord এবং largestWord আপডেট করব।
প্রোগ্রাম
#include <iostream>
#include <cstring>
using namespace std;
void minMaxLengthWords(string str) {
int StrLength = str.length();
int startIndex = 0, endIndex = 0;
int minLength = StrLength, maxLength = 0, currentLength;
string smallest, largest;
while (endIndex <= StrLength) {
if (str[endIndex] != '\0' && str[endIndex] != ' ')
endIndex++;
else {
currentLength = endIndex - startIndex;
if (currentLength < minLength) {
smallest = str.substr(startIndex, currentLength);
minLength = currentLength;
}
if (currentLength > maxLength) {
largest = str.substr(startIndex, currentLength);
maxLength = currentLength;
}
endIndex++;
startIndex = endIndex;
}
}
cout << "Smallest Word from the string is " << smallest << "\n";
cout << "Largest Word from the string is " << largest;
}
int main() {
string a = "Learn Programming at TutorialsPoint";
minMaxLengthWords(a);
return 0;
}
আউটপুট
Smallest Word from the string is at Largest Word from the string is TutorialsPoint