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

C++ में दिए गए वर्ण सेट से शब्द की संभावना


इस समस्या में, हमें दो स्ट्रिंग str1 और str2 दी गई हैं। हमारा कार्य यह जांचना है कि क्या str2 के सभी वर्ण str1 में मौजूद हैं।

समस्या को समझने के लिए एक उदाहरण लेते हैं

इनपुट -

str1 = "Hello"
str2 = "Hell"

आउटपुट - हां

व्याख्या - str2 के सभी वर्ण str1 में मौजूद हैं।

इस समस्या को हल करने के लिए, एक सरल समाधान str2 के प्रत्येक वर्ण को str1 में जांचना और फिर समाधान वापस करना होगा।

लेकिन हमें प्रभावी समाधान बनाने की आवश्यकता है। इसलिए, हम एक फ्रीक्वेंसी ऐरे (सभी वैध वर्णों के लिए लंबाई 256) का उपयोग करेंगे और फिर str1 को ट्रैवर्स करेंगे और घटित होने वाले संबंधित वर्ण के आधार पर फ्रीक्वेंसी ऐरे में मान बढ़ाएंगे। फिर हम str2 को ट्रैवर्स करेंगे, जो घटना पर फ्रीक्वेंसी ऐरे को घटाएगा। और प्रत्येक पुनरावृति में, हम यह भी जांचेंगे कि क्या यह फ्रीक्वेंसी नकारात्मक हो गई है। यदि हो गई है तो संभव नहीं अन्यथा यह संभव है।

उदाहरण

हमारे समाधान के कार्यान्वयन को दर्शाने वाला प्रोग्राम

#include <iostream>
#include <string.h>
using namespace std;

bool isPresent(string str1, string str2) {
    int freq[256] = {0};
    for (int i = 0; i < str1.length(); i++)
        freq[str1[i]]++;
    for (int i = 0; i < str2.length(); i++) {
        if (freq[str2[i]] < 1)
            return false;
    }
    return true;
}

int main() {
    string str1 = "tutorialspoint";
    string str2 = "point";
    cout << "'" << str2 << "' के सभी वर्ण ";
    isPresent(str1, str2) ? cout << "मौजूद हैं" : cout << "मौजूद नहीं हैं";
    cout << " '" << str1 << "' में";
    return 0;
}

आउटपुट

'point' के सभी वर्ण 'tutorialspoint' में मौजूद हैं
  1. C++ में दिए गए सेट में मौजूद हर नोड से पहुंच योग्य सभी नोड्स खोजें C++ में दिए गए सेट में मौजूद हर नोड से पहुंच योग्य सभी नोड्स खोजें

    मान लीजिए हमारे पास एक अनडायरेक्टेड ग्राफ और वर्टेक्स का एक सेट है; हमें दिए गए सेट में मौजूद हर वर्टेक्स से सभी पहुंच योग्य नोड्स खोजने हैं। यदि इनपुट ऐसा है: तो आउटपुट होगा [1,2,3] और [4,5] क्योंकि ये दो कनेक्टेड कंपोनेंट्स हैं। समाधान दृष्टिकोण nodes := ग्राफ में नोड्स की संख्या। आकार nodes+

  1. C++ में दिए गए प्रारंभिक वर्ण से सबसे लंबे लगातार पथ की लंबाई ज्ञात करें C++ में दिए गए प्रारंभिक वर्ण से सबसे लंबे लगातार पथ की लंबाई ज्ञात करें

    विभिन्न वर्णों का एक मैट्रिक्स दिया गया है। एक वर्ण से शुरू करके हमें सबसे लंबा पथ ढूंढना है जो उन सभी वर्णों को पार करके जाता है जो वर्तमान वर्ण से बड़े हैं। वर्ण एक-दूसरे के क्रमागत हैं। E से शुरू होता है। सबसे लंबा पथ ढूंढने के लिए, हम डेप्थ फर्स्ट सर्च एल्गोरिदम का उपयोग करेंगे। DFS के दौरान, क

  1. - C++ प्रोग्राम: दिए गए सेट से रैंडम पार्टीशन उत्पन्न करना

    यह C++ प्रोग्राम दिए गए नंबर्स या कैरेक्टर्स के सेट से रैंडम पार्टीशन (यादृच्छिक विभाजन) उत्पन्न करता है। प्रोग्राम दो मोड में काम करता है: इंटीजर ऐरे के लिए और कैरेक्टर स्ट्रिंग के लिए। एल्गोरिदम शुरुआत 1. इंटीजर या कैरेक्टर इनपुट लें। 2. विकल्प 1 (इंटीजर) के लिए: - n इंटीजर ऐरे का इनपुट