इस खंड में, हम देखेंगे कि दो स्ट्रिंग्स मेटा स्ट्रिंग हैं या नहीं, इसकी जांच कैसे करें। मेटा स्ट्रिंग्स वे स्ट्रिंग्स हैं जो बहुत समान हैं। यदि हम एक स्ट्रिंग में दो एलिमेंट्स को स्वैप करते हैं, तो यह दूसरी स्ट्रिंग से मेल खाएगी। मान लीजिए दो स्ट्रिंग्स "HELLO" और "OELLH" हैं, तो वे मेटा स्ट्रिंग्स हैं।
यह जांचने के लिए कि दो स्ट्रिंग्स मेटा स्ट्रिंग हैं या नहीं, हमें इन चरणों का पालन करना होगा।
चरण −
यदि दोनों स्ट्रिंग्स अलग-अलग लंबाई की हैं, तो false वापस करें
अन्यथा उन कैरेक्टर्स की संख्या ढूंढें जो मेल नहीं खाते, साथ ही नॉन-मैचिंग कैरेक्टर्स के इंडेक्स स्टोर करें
यदि काउंट 2 से अधिक है, तो false वापस करें
अन्यथा इन कैरेक्टर्स को स्वैप करें, फिर यदि दोनों स्ट्रिंग्स समान हैं, तो true वापस करें, अन्यथा false।
उदाहरण
#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++; // नॉन-मैचिंग कैरेक्टर्स की संख्या 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 << "मेटा स्ट्रिंग्स"; } else { cout << "मेटा स्ट्रिंग्स नहीं"; } } आउटपुट
मेटा स्ट्रिंग्स