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

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

इस समस्या में, हमें ऊंट के मामले में स्ट्रिंग की एक सरणी और एक पैटर्न दिया गया है। हमें सरणी के उन सभी स्ट्रिंग को प्रिंट करना है जो दिए गए पैटर्न से मेल खाते हैं।

स्ट्रिंग की सरणी एक सरणी है जिसमें तत्व स्ट्रिंग डेटा प्रकार के होते हैं।

कैमलकेस प्रोग्रामिंग में नामकरण का एक सामान्य तरीका है, इस तरह नए शब्द का पहला अक्षर अपरकेस से शुरू होता है, बाकी सभी लोअर केस हैं।

उदाहरण - iLoveProgramming

समस्या - किसी दिए गए पैटर्न से मेल खाने वाले सभी स्ट्रिंग खोजें।

उदाहरण -

Input : “TutorialsPoint” , “ProgrammersPoint” , “ProgrammingLover” , “Tutorials”.
Pattern : ‘P’
Output : “TutorialsPoint” ,
“ProgrammersPoint” , “ProgrammingLover”

स्पष्टीकरण - हमने उन सभी स्ट्रिंग्स पर विचार किया है जिनमें 'P' है।

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

उदाहरण

#include <bits/stdc++.h>
using namespace std;
struct TreeNode{
   TreeNode* children[26];
   bool isLeaf;
   list<string> word;
};
TreeNode* getNewTreeNode(void){
   TreeNode* pNode = new TreeNode;
   if (pNode){
      pNode->isLeaf = false;
      for (int i = 0; i < 26; i++)
         pNode->children[i] = NULL;
   }
   return pNode;
}
void insert(TreeNode* root, string word){
   int index;
   TreeNode* pCrawl = root;
   for (int level = 0; level < word.length(); level++){
      if (islower(word[level]))
         continue;
      index = int(word[level]) - 'A';
      if (!pCrawl->children[index])
      pCrawl->children[index] = getNewTreeNode();
      pCrawl = pCrawl->children[index];
   }
   pCrawl->isLeaf = true;
   (pCrawl->word).push_back(word);
}
void printAllWords(TreeNode* root){
   if (root->isLeaf){
      for(string str : root->word)
         cout << str << endl;
   }
   for (int i = 0; i < 26; i++){
      TreeNode* child = root->children[i];
      if (child)
         printAllWords(child);
   }
}
bool search(TreeNode* root, string pattern){
   int index;
   TreeNode* pCrawl = root;
   for (int level = 0; level <pattern.length(); level++) {
      index = int(pattern[level]) - 'A';
      if (!pCrawl->children[index])
         return false;
      pCrawl = pCrawl->children[index];
   }
   printAllWords(pCrawl);
   return true;
}
void findAllMatch(vector<string> dictionary, string pattern){
   TreeNode* root = getNewTreeNode();
   for (string word : dictionary)
      insert(root, word);
   if (!search(root, pattern))
      cout << "No match found";
}
int main(){
   vector<string> dictionary = { "Tutorial" , "TP" , "TutorialsPoint" , "LearnersPoint", "TutorialsPointsPrograming" , "programmingTutorial"};
   string pattern = "TP";
   findAllMatch(dictionary, pattern);
   return 0;
}

आउटपुट

TP
TutorialsPoint
TutorialsPointsPrograming

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

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

  1. किसी दिए गए स्ट्रिंग के सभी सबस्ट्रिंग को C++ में प्रिंट करने का प्रोग्राम

    इस ट्यूटोरियल में, हम किसी दिए गए स्ट्रिंग के सभी सबस्ट्रिंग को प्रिंट करने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें एक स्ट्रिंग या वर्णों की एक सरणी दी जाएगी। हमारा काम उस विशेष स्ट्रिंग के सभी सबस्ट्रिंग को प्रिंट करना है। उदाहरण #include<bits/stdc++.h> using namespace std; //prin

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

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