Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ में एक शब्दकोश में विशिष्ट पैटर्न से मेल खाने वाले सभी तार खोजें

विचार करें कि हमारे पास डिक्शनरी नामक स्ट्रिंग्स की एक सूची है। हमारे पास एक और पैटर्न स्ट्रिंग है। हमारा काम उन स्ट्रिंग्स को ढूंढना है जो पैटर्न से मेल खाती हैं। मान लीजिए कि शब्दकोश ["abb", "xyz", "aab", "kmm"] जैसा है, और पैटर्न "stt" है, तो परिणाम "abb", और "kmm" होंगे। चूंकि पैटर्न में पहले एक अक्षर होता है, फिर दो समान अक्षर होते हैं, इसलिए यह समान पैटर्न स्ट्रिंग्स का अनुसरण करेगा।

इस समस्या को हल करने के लिए, हम पैटर्न को इस तरह से एन्कोड करेंगे कि डिक्शनरी से कोई भी शब्द, जो पैटर्न से मेल खाता हो, में एन्कोडिंग के बाद पैटर्न जैसा ही हैश होगा। हम शब्दकोश में सभी शब्दों के माध्यम से पुनरावृति करेंगे और उन्हें प्रदर्शित करेंगे जहां हैश समान है।

उदाहरण

#include<iostream>
#include<unordered_map>
#include<unordered_set>
using namespace std;
string stringEncode(string str) {
   unordered_map<char, int> map;
   string encoded_str = "";
   int i = 0;
   for (char ch : str) {
      if (map.find(ch) == map.end())
         map[ch] = i++;
         encoded_str += to_string(map[ch]);
      }
      return encoded_str;
   }
void matchedPattern(unordered_set<string> dict, string pattern) {
   int patt_len = pattern.length();
   string hash = stringEncode(pattern);
   for (string word : dict) {
      if (word.length() == patt_len && stringEncode(word) == hash)
         cout << word << " ";
   }
}
int main() {
   unordered_set<string> dict = {"abb", "xyz", "aab", "kmm"};
   string pattern = "stt";
   matchedPattern(dict, pattern);
}

आउटपुट

kmm abb

  1. सी ++ में एक शब्दकोश में विशिष्ट पैटर्न से मेल खाने वाले सभी तार खोजें

    विचार करें कि हमारे पास डिक्शनरी नामक स्ट्रिंग्स की एक सूची है। हमारे पास एक और पैटर्न स्ट्रिंग है। हमारा काम उन स्ट्रिंग्स को ढूंढना है जो पैटर्न से मेल खाती हैं। मान लीजिए कि शब्दकोश [abb, xyz, aab, kmm] जैसा है, और पैटर्न stt है, तो परिणाम abb, और kmm होंगे। चूंकि पैटर्न में पहले एक अक्षर होता है

  1. एक सरणी में सभी जोड़े (ए, बी) खोजें जैसे कि सी ++ में% बी =के

    मान लीजिए कि हमारे पास एक सरणी ए है, उस सरणी से, हमें सभी जोड़े (ए, बी) प्राप्त करना है जैसे कि ए% बी =के। मान लीजिए कि सरणी A =[2, 3, 4, 5, 7] और k =3 है, तो जोड़े (7, 4), (3, 4), (3, 5), (3, 7) हैं। इसे हल करने के लिए, हम सूची को देखेंगे और जांचेंगे कि दी गई शर्त संतोषजनक है या नहीं। उदाहरण #inc

  1. C++ में स्ट्रिंग्स का ऐरे

    स्ट्रिंग कीवर्ड का उपयोग करके C++ में स्ट्रिंग्स की सरणी बनाई जा सकती है। यहां हम इस दृष्टिकोण का उपयोग करके C++ प्रोग्राम पर चर्चा कर रहे हैं। एल्गोरिदम Begin Initialize the elements of array by string keyword. And take string as input. Print the array. End. उदाहरण कोड #include<iostream>