আমাদের একটি ইংরেজি বাক্য দেওয়া আছে। লক্ষ্য হল বাক্য-তে কতটি প্যালিনড্রোম শব্দ আছে তা বের করা। প্যালিনড্রোম শব্দ বলতে শুরুর থেকে এবং শেষ থেকে পড়লে একই হয় এমন শব্দ। বড় এবং ছোট হাতের অক্ষর বিবেচনা করা হয় না।
উদাহরণ
ইনপুট: "My Mom and Anna left at Noon"
আউটপুট: ৩
ব্যাখ্যা: Mom, Anna, Noon।
ইনপুট: "I am at level 121 in Racecar game"
আউটপুট: ৪
ব্যাখ্যা: I, level, 121, Racecar।
অ্যালগরিদম
- বাক্য এবং দৈর্ঘ্য ইনপুট নিন।
- স্পেস দিয়ে শব্দগুলো আলাদা করুন।
- প্রতিটি শব্দকে lowercase-এ কনভার্ট করুন।
- দুটি পয়েন্টার দিয়ে প্রথম এবং শেষ অক্ষর তুলনা করুন। মismes হলে false, না হলে true।
- প্যালিনড্রোম শব্দ পেলে কাউন্ট বাড়ান।
C++ বাস্তবায়ন
#include <bits/stdc++.h>
using namespace std;
bool check(string extra) {
int len = extra.length();
transform(extra.begin(), extra.end(), extra.begin(), ::tolower);
for (int i = 0; i < len; i++, len--) {
if (extra.at(i) != extra.at(len - 1)) return false;
}
return true;
}
int palindrome(string str, int length) {
int count = 0;
string extra = "";
for (int i = 0; i < length; i++) {
char temp = str.at(i);
if (temp != ' ') {
extra += temp;
} else {
if (check(extra)) count++;
extra = "";
}
}
return count;
}
int main() {
string str = "nitin wants nitin for his company named nitin after nitin";
str = str + " ";
int length = str.length();
cout << "Count of palindrome words in a sentence are: " << palindrome(str, length) << endl;
return 0;
}
আউটপুট
Count of palindrome words in a sentence are: 4