इस खंड में, हम देखेंगे कि कैसे जांचें कि दो तार मेटा स्ट्रिंग हैं या नहीं। मेटा स्ट्रिंग्स वे स्ट्रिंग्स हैं जो बहुत समान हैं। यदि हम एक स्ट्रिंग में दो तत्वों की अदला-बदली करते हैं, तो यह अन्य स्ट्रिंग से मेल खाएगा। मान लीजिए कि दो तार "हेलो" और "ओईएलएलएच" हैं, तो वे मेटा स्ट्रिंग हैं।
यह जांचने के लिए कि दो तार मेटा स्ट्रिंग हैं या नहीं, हमें इन चरणों का पालन करना होगा।
चरण -
-
यदि दोनों तार अलग-अलग लंबाई के हैं, तो झूठी वापसी करें
-
अन्यथा ऐसे कई वर्ण खोजें जो मेल नहीं खाते हैं, गैर-मिलान वर्णों की अनुक्रमणिका भी संग्रहीत करते हैं
-
यदि गिनती 2 से अधिक है, तो झूठी वापसी करें
-
अन्यथा इन वर्णों को स्वैप करें, फिर यदि दो तार समान हैं, तो सत्य लौटाएं, अन्यथा असत्य।
उदाहरण
#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<s1_len; i++) { if (s1[i] != s2[i]) { count++; // number of unmatched characters if (count > 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"; } }
आउटपुट
Meta Strings