এই সমস্যায়, আমরা একটি স্ট্রিং স্ট্র যা কমা দ্বারা বিভক্ত শব্দের সমন্বয়ে গঠিত। আমাদের কাজ হল একটি স্ট্রিং থেকে প্রথম সর্বোচ্চ দৈর্ঘ্য, এমনকি শব্দটি খুঁজে বের করা .
আমাদের সবচেয়ে বড় শব্দ 'দুটি স্থানের মধ্যে স্ট্রিং' খুঁজে বের করতে হবে যার দৈর্ঘ্য সর্বাধিক এবং সমান।
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
Input : str = "learn programming at TutorialsPoint" Output : TutorialsPoint
ব্যাখ্যা −
The string with even length is TutorialsPoint.
সমাধান পদ্ধতি
সমস্যার একটি সহজ সমাধান হল স্ট্রিংটি খুঁজে বের করা যার দৈর্ঘ্য বর্তমান স্ট্রিংয়ের থেকেও বেশি। সর্বাধিক স্ট্রিং দৈর্ঘ্য 0 এ শুরু করুন।
অ্যালগোরিথাম
ধাপ 1 − স্ট্রিং এর উপর পুনরাবৃত্তি করুন।
ধাপ 2 − বর্তমান শব্দের সমান দৈর্ঘ্য আছে কিনা এবং শব্দের দৈর্ঘ্য শেষ বড় শব্দের চেয়ে বেশি কিনা তা পরীক্ষা করুন।
ধাপ 3 - শব্দটি ফেরত দাও।
উদাহরণ
আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম
#include <bits/stdc++.h>
using namespace std;
string findMaxEvenLenWord(string str) {
int len = str.length();
int i = 0; int currWordlen = 0;
int maxWordLen = 0;
int stringPointer = -1;
while (i < len) {
if (str[i] == ' ') {
if (currWordlen % 2 == 0) {
if (maxWordLen < currWordlen) {
maxWordLen = currWordlen;
stringPointer = i - currWordlen;
}
}
currWordlen = 0;
}
else {
currWordlen++;
}
i++;
}
if (currWordlen % 2 == 0) {
if (maxWordLen < currWordlen) {
maxWordLen = currWordlen;
stringPointer = i - currWordlen;
}
}
if (stringPointer == -1)
return "Not Found!";
return str.substr(stringPointer, maxWordLen);
}
int main() {
string str = "Learn programming at Tutorialspoint";
cout<<"The maximum length even word is '"<<findMaxEvenLenWord(str)<<"'";
return 0;
} আউটপুট
The maximum length even word is 'Tutorialspoint'