मान लीजिए हमारे पास समान लंबाई n की तीन स्ट्रिंग्स S, T और U हैं। रेंज 0 से n-1 में हर इंडेक्स i के लिए, हमें U[i] को या तो S[i] या T[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