কম্পিউটার

C++ এ অক্ষরের একটি নির্দিষ্ট সেট থেকে একটি শব্দের সম্ভাবনা


এই সমস্যায়, আমরা দুটি স্ট্রিং str1 এবং str2। আমাদের কাজ হল str2-এর সমস্ত অক্ষর এবং str1-এ উপস্থিত কিনা তা পরীক্ষা করা।

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক

ইনপুট৷ −

str1 = “Hello”
str2 = “Hell”

আউটপুট - হ্যাঁ

ব্যাখ্যা − str2-এর সমস্ত অক্ষর str1-এ উপস্থিত।

এই সমস্যাটি সমাধান করার জন্য, একটি সহজ সমাধান হল str1-এ str2-এর প্রতিটি অক্ষর পরীক্ষা করা হবে এবং তারপর সমাধানটি ফিরিয়ে দেওয়া হবে।

কিন্তু আমাদের কার্যকর সমাধান তৈরি করতে হবে। সুতরাং, আমরা একটি ফ্রিকোয়েন্সি অ্যারে ব্যবহার করব (সমস্ত বৈধ অক্ষরের জন্য দৈর্ঘ্য 256) এবং তারপরে str1 অতিক্রম করব এবং সংঘটিত হওয়ার তুলনায় সংশ্লিষ্ট অক্ষরের উপর ভিত্তি করে ফ্রিকোয়েন্সি অ্যারের মান বাড়াব। তারপরে আমরা str2 অতিক্রম করব, যা সংঘটনের ফ্রিকোয়েন্সি অ্যারেকে হ্রাস করবে। এবং প্রতিটি পুনরাবৃত্তিতে, আমরা এই ফ্রিকোয়েন্সি নেতিবাচক হয়ে গেছে কিনা তাও পরীক্ষা করব। যদি থাকে তাহলে সম্ভব নয় অন্যথায় সম্ভব।

উদাহরণ

আমাদের সমাধানের বাস্তবায়ন দেখানোর জন্য প্রোগ্রাম

#include <iostream>
#include <string.h>
using namespace std;
bool isPresent(string str1, string str2){
   int freq[256] = { 0 };
   for (int i = 0; i<str1.length(); i++)
      freq[str1[i]]++;
   for (int i=0;i<str2.length(); i++) {
         if (freq[str2[i]] < 1)
            return false;
   }
   return true;
}
int main() {
   string str1 = "tutorialspoint";
   string str2 = "point";
   cout<<"All charcters of '"<<str2<<"' are ";
   isPresent(str1,str2)?cout<<"present":cout<<"not present";
   cout<<" in '"<<str1<<"' ";
   return 0;
}

আউটপুট

All charcters of 'point' are present in 'tutorialspoint'

  1. C++ এ প্রদত্ত সেটে উপস্থিত প্রতিটি নোড থেকে সমস্ত পৌঁছানো নোড খুঁজুন

  2. C++ এ প্রদত্ত প্রারম্ভিক অক্ষর থেকে দীর্ঘতম ধারাবাহিক পথের দৈর্ঘ্য খুঁজুন

  3. C++ এ প্রদত্ত কোণ থেকে চাপের দৈর্ঘ্য?

  4. একটি প্রদত্ত সংখ্যা বা অক্ষর থেকে র্যান্ডম পার্টিশন তৈরি করতে C++ প্রোগ্রাম