ইনপুট হিসাবে আমাদের একটি স্ট্রিং 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