এই সেকশনে আমরা দেখব কিভাবে যাচাই করা যায় দুটি স্ট্রিং মেটা স্ট্রিংস কিনা। মেটা স্ট্রিংস হলো এমন স্ট্রিংস যারা খুব বেশি সাদৃশ্য রক্ষা করে। যদি এক স্ট্রিং-এ দুটি উপাদান সুয়াপ করলে, তবে সেটি অন্য স্ট্রিং-এর সাথে মিলে যায়। ধরুন দুটি স্ট্রিং হল "HELLO" এবং "OELLH", তবে এরা মেটা স্ট্রিংস।
যাচাই করতে হবে দুটি স্ট্রিং মেটা স্ট্রিংস কিনা, এর জন্য নিচের ধাপগুলো অনুসরণ করতে হবে:
ধাপসমূহ
- যদি দুটি স্ট্রিং-এর দৈর্ঘ্য ভিন্ন হয়, তবে false ফেরত দিন
- অন্যথায়, যেসব ক্যারেক্টার মেলেনি তাদের সংখ্যা বের করুন, সাথে সাথে মেলেনি এমন ক্যারেক্টারদের ইনডেক্স সংরক্ষণ করুন
- যদি কাউন্ট ২-এর চেয়ে বড় হয়, তবে false ফেরত দিন
- অন্যথায়, এই ক্যারেক্টারগুলো সুয়াপ করুন, তারপর যদি দুটি স্ট্রিং একই হয়, তবে true ফেরত দিন, অন্যথায় false
C++ প্রোগ্রাম উদাহরণ
#include <iostream>
using namespace std;
bool areTheyMetaString(string s1, string s2) {
int s1_len = s1.length();
int s2_len = s2.length();
if (s1_len != s2_len)
return false;
int prev = -1, curr = -1;
int count = 0;
for (int i=0; i 2)
return false;
prev = curr;
curr = i;
}
}
return (count == 2 && s1[prev] == s2[curr] && s1[curr] == s2[prev]);
}
int main() {
string s1 = "HELLO", s2 = "OELLH";
if(areTheyMetaString(s1, s2)){
cout << "Meta Strings";
} else {
cout << "Not Meta Strings";
}
return 0;
}
আউটপুট
Meta Strings