ধরুন আমাদের তিনটি স্ট্রিং S, T এবং U একই দৈর্ঘ্যের n আছে। 0 থেকে n-1 রেঞ্জের প্রতিটি সূচক i এর জন্য, আমাদের অবশ্যই S[i] বা T[i] এর সাথে U[i] অদলবদল করতে হবে। তাই মোট আমরা n সোয়াপিং অপারেশন সঞ্চালিত হয়েছে. আমাদের চেক করতে হবে এই ধরনের n অপারেশনের পর আমরা স্ট্রিং S কে ঠিক T এর মতই করতে পারি কিনা।
সুতরাং, যদি ইনপুটটি S ="abc" এর মত হয়; T ="bca"; U ="bca", তাহলে আউটপুট হবে True, কারণ সকল i এর জন্য যদি আমরা U[i] কে S[i] এর সাথে অদলবদল করি, তা হবে "bca", এবং T ইতিমধ্যেই "bca"।
পদক্ষেপ
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
শুরু করার জন্যfor initialize i := 0, when S[i] is non-zero, update (increase i by 1), do: if S[i] is not equal to U[i] and T[i] is not equal to U[i], then: return false return true
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <bits/stdc++.h>
using namespace std;
bool solve(string S, string T, string U) {
for (int i = 0; S[i]; ++i)
if (S[i] != U[i] && T[i] != U[i])
return false;
return true;
}
int main() {
string S = "abc";
string T = "bca";
string U = "bca";
cout << solve(S, T, U) << endl;
} ইনপুট
"abc", "bca", "bca"
আউটপুট
1