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

पायथन में अलग-अलग नोड्स का उपयोग करके संभावित बीएसटी की संख्या का पता लगाने के लिए कार्यक्रम तैयार किया जा सकता है

मान लीजिए कि हमारे पास एक संख्या n है। यदि हमारे पास [1,2,...,n] जैसी संख्याएँ हैं, तो हमें इन n मानों का उपयोग करके संभावित BST की संख्या को गिनना होगा। अगर उत्तर बहुत बड़ा है, तो परिणाम को 10^9+7 से संशोधित करें।

इसलिए, यदि इनपुट n =3 जैसा है, तो आउटपुट 14 होगा,

पायथन में अलग-अलग नोड्स का उपयोग करके संभावित बीएसटी की संख्या का पता लगाने के लिए कार्यक्रम तैयार किया जा सकता है

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे

  • a :=मानों वाली एक सूची [0, 1]
  • म :=10^9+7
  • अधिकतम_एन:=1000
  • k के लिए 2 से लेकर max_n + 1 तक, करें
    • सम्मिलित करें (सूची के सभी तत्वों का 1 + योग (a[i] * a[k - i] सभी के लिए i रेंज में(1, k))) mod m a के अंत में
  • वापसी (a[n + 1] - 1) मॉड m

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

def solve(n):
   a = [0, 1]
   m = 10**9+7
   max_n = 1000

   for k in range(2, max_n + 2):
      a.append((1 + sum(a[i] * a[k - i] for i in range(1, k))) % m)
   return ((a[n + 1] - 1) % m)

n = 3
print(solve(n))

इनपुट

3

आउटपुट

14

  1. पायथन का उपयोग करके अच्छे लीफ नोड्स जोड़े की संख्या खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है। और दूसरा मान दूरी d. दो अलग-अलग लीफ नोड्स की एक जोड़ी को अच्छा कहा जाता है, जब इन दो नोड्स के बीच का सबसे छोटा रास्ता छोटा या दूरी d के समान होता है। तो, अगर इनपुट पसंद है और दूरी d =4, तो आउटपुट 2 होगा क्योंकि जोड़े (8,7) और (5,6) हैं क्योंकि उनकी पथ लं

  1. पायथन का उपयोग करके समान लेबल वाले उप-वृक्ष में नोड्स की संख्या खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास n नोड्स वाला एक रूटेड सामान्य ट्री है, जिसके नोड्स 0 से n-1 तक गिने जाते हैं। प्रत्येक नोड में लोअरकेस अंग्रेजी अक्षर वाला एक लेबल होता है। लेबल्स को लेबल एरे में इनपुट के रूप में दिया जाता है, जहां लेबल्स [i] में ith नोड के लिए लेबल होता है। पेड़ को किनारे की सूची द्वारा दर्श

  1. पायथन में एक श्रेणी में नोड्स की संख्या खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बीएसटी है, और हमारे पास बाएं और दाएं सीमाएं एल और आर भी हैं, हमें रूट में उन सभी नोड्स की गिनती ढूंढनी है जिनके मान एल और आर (समावेशी) के बीच मौजूद हैं। तो, अगर इनपुट पसंद है l =7, r =13, तो आउटपुट 3 होगा, क्योंकि तीन नोड हैं:8, 10, 12. इसे हल करने के लिए, हम इन चरणों