কম্পিউটার

C++ এ একটি বাক্যে প্যালিনড্রোম শব্দ গণনা করুন


আমাদের একটি ইংরেজি বাক্য সম্বলিত একটি স্ট্রিং দেওয়া হয়। লক্ষ্য হল প্যালিনড্রোম স্ট্রিং এর শব্দের সংখ্যা খুঁজে বের করা। প্যালিনড্রোম শব্দগুলি হল যেগুলি শুরু বা শেষ থেকে পড়ার সময় একই বর্ণমালার ক্রম থাকে। যদি বাক্যটি হয় "ম্যাডাম ভালো মালায়ালম বলেন", তাহলে প্যালিনড্রোম শব্দের সংখ্যা হবে ২টি। (ম্যাডাম এবং মালায়ালাম)

দ্রষ্টব্য − শব্দে বড় এবং ছোট হাতের উভয় বর্ণমালা থাকতে পারে।

আসুন উদাহরণ দিয়ে বুঝতে পারি।

ইনপুট − str ="আমার মা এবং আন্না দুপুরে চলে গেছে";

আউটপুট − একটি বাক্যে প্যালিনড্রোম শব্দের সংখ্যা হল −3

ব্যাখ্যা − উপরের বাক্যে প্যালিনড্রোম শব্দগুলি হল - মা, আনা এবং দুপুর। (বর্ণমালার ক্ষেত্রে নির্বিশেষে)

ইনপুট − str=“আমি রেসকার গেমে 121 লেভেলে আছি”

আউটপুট − একটি বাক্যে প্যালিনড্রোম শব্দের সংখ্যা হল −4

ব্যাখ্যা − উপরের বাক্যে প্যালিনড্রোম শব্দগুলি হল − I, স্তর, 121, রেসকার। (বর্ণমালার ক্ষেত্রে নির্বিশেষে)

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

আমরা একটি বাক্যে " " স্থানের পরে প্রতিটি শব্দ নেব এবং একটি ফাংশনে পাস করব। ফাংশন শব্দের অক্ষরকে ছোট হাতের অক্ষরে রূপান্তরিত করে। এখন শব্দের প্রথম অক্ষর থেকে ট্রাভার্স করা শুরু করুন এবং শব্দ[0] এর সাথে শব্দ[দৈর্ঘ্য-1], শব্দ [1] শব্দের সাথে [দৈর্ঘ্য-2] ইত্যাদির তুলনা করুন। কোনো অমিল দেখা দিলে ব্রেক লুপ অন্যথায় সত্যে ফিরে আসবে।

  • একটি বাক্য সম্বলিত একটি স্ট্রিং অ্যারে str[] নিন।

  • ফাংশন চেক (স্ট্রিং অতিরিক্ত) একটি স্ট্রিং নেয় এবং স্ট্রিংটি প্যালিনড্রোম হলে সত্য ফেরত দেয় অন্যথায় মিথ্যা ফেরত দেয়।

  • len=extra.lenght().

    হিসাবে অতিরিক্ত স্ট্রিং এর দৈর্ঘ্য গণনা করুন
  • (extra.begin(), extra.end(), extra.begin(), ::tolower);

    ব্যবহার করে পুরো স্ট্রিংকে ছোট হাতের অক্ষরে রূপান্তর করুন
  • শব্দের সূচক 0 থেকে সূচীতে পর্যন্ত যাত্রা শুরু করুন

  • অতিরিক্ত[i]==অতিরিক্ত [লেন-১] তুলনা করুন। অমিল ঘটলে মিথ্যা ফেরত দিন। অন্যথা সত্য প্রত্যাবর্তন.

  • ফাংশন palindrome(string str, int length) একটি বাক্য এবং এর দৈর্ঘ্য নেয় এবং এতে প্যালিনড্রোম শব্দের সংখ্যা প্রদান করে।

  • 0 হিসাবে প্রাথমিক গণনা নিন।

  • পৃথক শব্দ বাছাই এবং সংরক্ষণ করতে অস্থায়ী স্ট্রিং অতিরিক্ত ="" নিন।

  • সূচক 0 থেকে i পর্যন্ত লুপ ব্যবহার করে বাক্যটি অতিক্রম করা শুরু করুন

  • অস্থায়ী অক্ষর temp=str.ar(i).

    নিন
  • যদি টেম্প স্পেস না হয় তবে একটি শব্দ তৈরি করতে এটি অতিরিক্ত যোগ করুন।

  • যদি temp স্থান না হয় তাহলে যদি (চেক(অতিরিক্ত)) সত্যিকারের বৃদ্ধির সংখ্যা প্রদান করে।

  • অতিরিক্ত=”” আবার করুন।

  • শেষ গণনায় প্যালিনড্রোম শব্দের মোট সংখ্যা থাকবে।

  • ফলাফল হিসাবে রিটার্ন গণনা।

উদাহরণ

#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 = 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

  1. C++ এ একটি স্ট্রিংয়ের সমস্ত প্যালিনড্রোম পারমুটেশন প্রিন্ট করুন

  2. C++ এ অতিরিক্ত বন্ধনী মুছে ফেলার পর একটি স্ট্রিং ব্যালেন্স করুন

  3. পাইথন প্রোগ্রামে একটি বাক্যে শব্দ গণনা করুন

  4. একটি বাক্যে শব্দ গণনা করার জন্য পাইথন প্রোগ্রাম