मान लीजिए हमारे पास एक स्ट्रिंग s है, और स्ट्रिंग्स का एक और ऐरे A है। हमें यह ढूंढना है कि क्या ऐरे में वर्तमान स्ट्रिंग से अलग लंबाई के एक-कैरेक्टर अंतर वाली स्ट्रिंग है। मान लीजिए स्ट्रिंग "banana" जैसी है, और ऐरे ["bana", "orange", "banaba", "banapy"] जैसा दिखता है, परिणाम true होगा, क्योंकि वहां एक स्ट्रिंग banaba है, यहां केवल एक कैरेक्टर केला से अलग है।
इस समस्या को हल करने के लिए, हम कुछ चरणों का पालन करेंगे -
- दिए गए स्ट्रिंग s को पार करें, और ऐरे में हर स्ट्रिंग के लिए जांचें, फिर ऐरे में हर स्ट्रिंग के लिए इन चरणों का पालन करें -
- जांचें कि ऐरे में स्ट्रिंग की लंबाई स्ट्रिंग s के समान है या नहीं
- यदि लंबाई समान है, तो जांचें कि क्या कोई सिंगल कैरेक्टर मिसमैच है या नहीं, यदि हां, तो true वापस करें, अन्यथा false।
उदाहरण
#include#include using namespace std; bool hasOneCharMismatch(vector arr, string s) { int n = arr.size(); if (n == 0) return false; for (int i = 0; i < n; i++) { if (arr[i].size() != s.size()) continue; bool difference = false; for (int j = 0; j < (int)arr[i].size(); j++) { if (arr[i][j] != s[j]) { if (!difference) difference = true; else { difference = false; break; } } } if (difference) return true; } return false; } int main() { vector arr; arr.push_back("bana"); arr.push_back("orange"); arr.push_back("banaba"); arr.push_back("banapy"); if(hasOneCharMismatch(arr, "banana")){ cout << "One character mismatch found"; } else{ cout << "One character mismatch not found"; } }
आउटपुट -
One character mismatch found