ধরুন আমাদের তিনটি স্ট্রিং 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