কম্পিউটার

C++ এ প্রদত্ত শব্দের i-তম অক্ষর হয় (i-1), i-th, বা (i+1)-তম অক্ষর হয় এমন শব্দের সংখ্যা


ইনপুট হিসাবে আমাদের একটি স্ট্রিং str[] দেওয়া হয়েছে। লক্ষ্য হল str[] থেকে শব্দগুলি গণনা করা যার দৈর্ঘ্য str[] এর সমান এবং বর্ণের অবস্থান যেমন ith অক্ষরটি অবস্থানে (i1) বা (i) বা (i+1) দিয়ে প্রতিস্থাপিত হয়।

প্রথম অক্ষরের জন্য প্রতিস্থাপন হবে অবস্থান i বা i+1

থেকে

শেষ অক্ষরের জন্য প্রতিস্থাপন হবে অবস্থান i-1 বা i.

থেকে

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

ইনপুট − str[] =“TPP”

আউটপুট − প্রদত্ত শব্দের i-th অক্ষর হয় (i-1)-th, i-th, অথবা (i+1)-তম অক্ষর −4

ব্যাখ্যা

Replacing T by T (i)th or 1st P (i+1)th = TPP, PPP
Replacing 1st P by T (i-1)th, P (i)th, or P(i+1)th = TTP, TPP, TPP
Replacing 2nd P by P(i-1)th or P(i)th = TPP, TPP
Unique combination of replacements: TPP, PPP, TTP, PTP

ইনপুট − str =“aaa”

আউটপুট − প্রদত্ত শব্দের i-th অক্ষর হয় (i-1)-th, i-th, অথবা (i+1)-তম অক্ষর হয় এমন শব্দের সংখ্যা হল:1

ব্যাখ্যা

Replacing a by a (i)th or 2nd a (i+1)th = aaa, aaa
Replacing 2nd a by a (i-1)th, a (i)th, or a(i+1)th = aaa, aaa, aaa
Replacing 3rd a by a(i-1)th or a(i)th = aaa, aaa
Unique combination of replacements: aaa

নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ

আমরা জানি যে প্রতিটি চিঠির জন্য আমাদের তিনটি সম্ভাবনা রয়েছে। যদি বর্তমান অক্ষরের জন্য i, সমস্ত (i-1)th, ith, (i+1)th আলাদা হয় তবে আমাদের কাছে 3টি বিকল্প রয়েছে। যদি দুটি একই হয় তবে আমাদের কাছে 2টি বিকল্প রয়েছে, যদি সবগুলি একই হয় তবে শুধুমাত্র একটি বিকল্প৷

সুতরাং আমরা স্ট্রিংটি অতিক্রম করব এবং অনন্যতা পরীক্ষা করব এবং অক্ষর অনুসারে 3, 2 বা 1 দিয়ে গুণ করব। প্রথম এবং শেষ অক্ষরের জন্য, আমরা স্বতন্ত্রতা পরীক্ষা করব এবং একইভাবে 2 বা 1 দিয়ে গুণ করব।

  • স্ট্রিং str[] কে ক্যারেক্টার অ্যারে হিসেবে নিন।

  • ফাংশন মোট (char str[], int length) স্ট্রিং নেয় এবং শব্দের সংখ্যা ফেরত দেয় যার i-th অক্ষর হয় (i-1)-th, i-th, অথবা (i+1)-প্রদত্ত অক্ষর। str[].

    এ শব্দ
  • প্রারম্ভিক গণনাটিকে 1 হিসাবে ধরুন। শব্দটি str[] নিজেই।

  • যদি একটি একক অক্ষর থাকে, দৈর্ঘ্য হবে 1, রিটার্ন 1।

  • সূচক 0-এ প্রথম অক্ষরটি পরীক্ষা করুন৷ যদি এটি দ্বিতীয়টির মতো হয় তবে str[0]==str[1] তারপর 1 দ্বারা গুণ করুন

  • যদি তারা ভিন্ন হয় তাহলে গণনাকে 2 দ্বারা গুণ করুন।

  • এখন সূচক i=1 থেকে i

  • সূচকে প্রতিটি অক্ষরের জন্য i. str[i] str[i-1] বা str[i+1] এর মতই কিনা তা পরীক্ষা করুন। যদি হ্যাঁ, গণনাকে 1 দ্বারা গুণ করুন।

  • যেকোনো দুটি একই হলে, গণনাকে 2 দ্বারা গুণ করুন।

  • অন্যথায় গণনা 3 দ্বারা গুণ করুন।

  • শেষ অক্ষরের জন্য, str[i-1]==str[i] কিনা তা পরীক্ষা করুন। সত্য হলে, গণনাকে 1 দ্বারা গুণ করুন। অন্যথায় 2 দ্বারা গুণ করুন

  • শেষে আমাদের আলাদা আলাদা শব্দের সংখ্যা থাকবে।

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

উদাহরণ

#include<bits/stdc++.h>
using namespace std;
int total(char str[], int length){
   int count = 1;
   if (length == 1){
      return count;
   }
   if (str[0] == str[1]){
      count = count * 1;
   }
   else{
      count = count * 2;
   }
   for (int j=1; j<length-1; j++){
      if (str[j] == str[j-1] && str[j] == str[j+1]){
         count = count * 1;
      }
      else if (str[j] == str[j-1]){
         count = count * 2;
      }
      else if(str[j] == str[j+1]){
         count = count * 2;
      }
      else if(str[j-1] == str[j+1]){
         count = count * 2;
      }
      else{
         count = count * 3;
      }
   }
   if (str[length - 1] == str[length - 2]){
      count = count * 1;
   }
   else{
      count = count * 2;
   }
   return count;
}
int main(){
   char str[] = "TPP";
   int length = strlen(str);
   cout<<"Count of words whose i-th letter is either (i-1)-th, i-th, or (i+1)-th letter of given word
are: "<<total(str, length) << endl;
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Count of words whose i-th letter is either (i-1)-th, i-th, or (i+1)-th letter of given word are: 4

  1. প্রদত্ত গাছের নোডগুলি গণনা করুন যার ওজন C++ এ দুটির শক্তি

  2. একটি বাছাই করা দ্বিগুণ লিঙ্কযুক্ত তালিকায় ট্রিপলেট গণনা করুন যার যোগফল C++ এ একটি প্রদত্ত মানের x এর সমান।

  3. একটি বাছাই করা দ্বিগুণ লিঙ্কযুক্ত তালিকায় ট্রিপলেট গণনা করুন যার পণ্য C++ এ একটি প্রদত্ত মানের x সমান।

  4. দুটি BST থেকে জোড়া গণনা করুন যার যোগফল C++ এ একটি প্রদত্ত মানের x এর সমান