এই সমস্যায়, আমরা একটি স্ট্রিং স্ট্র যা কমা দ্বারা বিভক্ত শব্দের সমন্বয়ে গঠিত। আমাদের কাজ হল একটি স্ট্রিং থেকে প্রথম সর্বোচ্চ দৈর্ঘ্য, এমনকি শব্দটি খুঁজে বের করা .
আমাদের সবচেয়ে বড় শব্দ 'দুটি স্থানের মধ্যে স্ট্রিং' খুঁজে বের করতে হবে যার দৈর্ঘ্য সর্বাধিক এবং সমান।
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
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'