स्ट्रिंग के रूप में अपने नोड्स के वजन के साथ एक बाइनरी ट्री को देखते हुए। लक्ष्य उन नोड्स की संख्या का पता लगाना है जिनमें वजन होता है जैसे कि स्ट्रिंग में एक स्वर होता है। यदि वजन 'एयर' है तो इसमें स्वर 'ए' और 'ई' हैं, इसलिए नोड की गणना की जाएगी।
उदाहरण के लिए
इनपुट
मान डालने के बाद जो ट्री बनाया जाएगा वह नीचे दिया गया है -
आउटपुट
Count the nodes of the tree whose weighted string contains a vowel are: 5
स्पष्टीकरण
हमें ट्री नोड्स और प्रत्येक नोड से जुड़े स्ट्रिंग वेट दिए गए हैं। अब हम जांचते हैं कि नोड्स की स्ट्रिंग में स्वर हैं या नहीं।
नोड | <थ>वजनस्वर | हां/नहीं | |
---|---|---|---|
2 | एई | ई | हां |
1 | बीसीडी | कोई स्वर नहीं | नहीं |
4 | io | मैं,ओ | हां |
3 | जीएफई | ई | हां |
8 | tptpa | a | हां |
9 | आप | i,o,u | हां |
इनपुट
मान डालने के बाद जो ट्री बनाया जाएगा वह नीचे दिया गया है -
आउटपुट
Count the nodes of the tree whose weighted string contains a vowel are: 3
स्पष्टीकरण
with the tree nodes and the string weights associated with each node. Now we check whether the string of nodes contains vowels or not.
नोड | <थ>वजनस्वर | हां/नहीं | |
---|---|---|---|
2 | ओएई | o,a,e,i | हां |
1 | एबीसीडी | कोई स्वर नहीं | नहीं |
4 | iio | मैं,ओ | हां |
3 | ggff | कोई स्वर नहीं | नहीं |
8 | आआ | a | हां |
नीचे दिए गए कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है -
इस दृष्टिकोण में हम पेड़ के ग्राफ पर डीएफएस लागू करेंगे और जांचेंगे कि नोड के वजन में एक स्वर युक्त स्ट्रिंग है या नहीं। इस उद्देश्य के लिए दो वैक्टर Node_Weight(100) और edge_graph[100] लें।
-
नोड्स के भार के साथ Node_Weight[] प्रारंभ करें।
-
वेक्टर edge_graph का उपयोग करके एक ट्री बनाएं।
-
एक वैश्विक चर स्वर लें और इसे 0 से प्रारंभ करें।
-
फ़ंक्शन check(string check_it) s string लेता है और अगर check_it में एक स्वर होता है तो यह सही हो जाता है।
-
लंबाई लें =check_it.length() check_it में वर्णों की संख्या के रूप में।
-
इंडेक्स i=0 से i<लंबाई तक लूप के लिए ट्रैवर्स check_it का उपयोग करना।
-
प्रत्येक check_it[i] को लोअरकेस में कनवर्ट करें और c में संग्रहीत करें।
-
यदि c किसी भी स्वर के बराबर है ('a', 'e' 'i', 'o', 'u' ) तो सही लौटें और असत्य लौटाएं।
-
फ़ंक्शन string_vowel(int node, int root) एक पेड़ का नोड और रूट नोड लेता है और दिए गए पेड़ में नोड्स की गिनती देता है जिनके वजन में वर्ण के रूप में एक स्वर होता है।
-
str =Node_Weight [नोड] लें।
-
यदि चेक(str) सही है तो स्वर बढ़ाएँ।
-
लूप के लिए उपयोग कर वेक्टर edge_graph[नोड] में ट्रैवर्स ट्री।
-
वेक्टर में अगले नोड के लिए string_vowel(it, node) को कॉल करें।
-
सभी कार्यों के अंत में हमारे पास एक स्वर होगा, जिसमें स्वरों वाले भार वाले नोड्स की संख्या होगी।
उदाहरण
#include <bits/stdc++.h> using namespace std; vector<string> Node_Weight(100); vector<int> edge_graph[100]; int vowel = 0; bool check(string check_it){ int length = check_it.length(); for(int i = 0; i <length; i++){ char c = tolower(check_it[i]); if(c == 'a' ||c == 'e' ||c == 'i' ||c == 'o' ||c == 'u'){ return true; } } return false; } void string_vowel(int node, int root){ string str = Node_Weight[node]; if(check(str)){ vowel++; } for (int it : edge_graph[node]){ if(it == root){ continue; } string_vowel(it, node); } } int main(){ //weight of the nodes Node_Weight[2] = "ae"; Node_Weight[1] = "bcd"; Node_Weight[4] = "io"; Node_Weight[3] = "gfe"; Node_Weight[8] = "tptpa"; Node_Weight[9] = "iou"; //create graph edge edge_graph[2].push_back(1); edge_graph[2].push_back(4); edge_graph[4].push_back(3); edge_graph[4].push_back(8); edge_graph[8].push_back(9); string_vowel(2, 2); cout<<"Count the nodes of the tree whose weighted string contains a vowel are: "<<vowel; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count the nodes of the tree whose weighted string contains a vowel are: 5