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

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 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 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 dict = {"abb", "xyz", "aab", "kmm"};
    string pattern = "stt";
    matchedPattern(dict, pattern);
}

आउटपुट

kmm abb
  1. - C++ प्रोग्राम: शब्दकोश में विशिष्ट पैटर्न से मेल खाने वाली सभी स्ट्रिंग्स ज्ञात करना

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

  1. - C++ में सरणी में उन सभी जोड़े (a, b) को खोजें जैसे कि a % b = k

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

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

    C++ में स्ट्रिंग कीवर्ड का उपयोग करके स्ट्रिंग्स का ऐरे बनाया जा सकता है। यहां हम इस दृष्टिकोण का उपयोग करके एक C++ प्रोग्राम पर चर्चा कर रहे हैं। एल्गोरिदम Begin स्ट्रिंग कीवर्ड द्वारा ऐरे के तत्वों को इनिशियलाइज़ करें। और स्ट्रिंग को इनपुट के रूप में लें। ऐरे प्रिंट करें। End. उदाहरण को