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

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


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

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

इनपुट -

str1 = “Hello”
str2 = “Hell”

आउटपुट - हाँ

स्पष्टीकरण - str2 के सभी वर्ण str1 में मौजूद हैं।

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

लेकिन हमें प्रभावी समाधान बनाने की जरूरत है। तो, हम एक आवृत्ति सरणी (सभी मान्य वर्णों के लिए लंबाई 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<<"All charcters of '"<<str2<<"' are ";
   isPresent(str1,str2)?cout<<"present":cout<<"not present";
   cout<<" in '"<<str1<<"' ";
   return 0;
}

आउटपुट

All charcters of 'point' are present in 'tutorialspoint'

  1. सी ++ में दिए गए सेट में मौजूद प्रत्येक नोड से सभी पहुंच योग्य नोड्स खोजें

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

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

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

  1. C++ प्रोग्राम किसी दिए गए नंबर या कैरेक्टर के सेट से रैंडम पार्टिशन जेनरेट करने के लिए

    यह एक C++ प्रोग्राम है जो दिए गए नंबरों या वर्णों के सेट से यादृच्छिक विभाजन उत्पन्न करता है। एल्गोरिदम Begin    Take the integers or characters as input.    For choice 1:       Take the input of the n integer array.       Assign l = 0 to traverse th