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

पायथन में बेसिक कैलकुलेटर II


मान लीजिए हमें एक साधारण एक्सप्रेशन स्ट्रिंग का मूल्यांकन करने के लिए एक बेसिक कैलकुलेटर लागू करना है। एक्सप्रेशन स्ट्रिंग में केवल नॉन-नेगेटिव इंटीजर्स, कुछ ऑपरेटर्स जैसे +, -, *, / और खाली स्पेस होंगे। इंटीजर डिवीजन केवल कोएशिएंट पार्ट लेना चाहिए।

इसलिए यदि इनपुट \"3+2*2\" जैसा है, तो आउटपुट 7 होगा।

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

  • एक स्टैक s परिभाषित करें, i := 0, x := एक खाली स्ट्रिंग
  • s में प्रत्येक कैरेक्टर j के लिए
    • यदि j ब्लैंक कैरेक्टर नहीं है
      • j को x में ऐपेंड करें
  • s := x, n := x की लंबाई
  • जब तक i < n
    • यदि s[i] '/' है, तो
      • i को 1 से बढ़ाएं
      • num := i-वें इंडेक्स से शुरू होने वाली संख्या, फिर i को संख्या के अंतिम कैरेक्टर के रूप में अपडेट करें
      • यदि स्टैक टॉप एलिमेंट < 0, तो स्टैक टॉप एलिमेंट को -(स्टैक टॉप / num) के रूप में अपडेट करें, अन्यथा स्टैक टॉप एलिमेंट को (स्टैक टॉप / num) के रूप में अपडेट करें
    • अन्यथा जब s[i] = \"*\"
      • i को 1 से बढ़ाएं
      • num := i-वें इंडेक्स से शुरू होने वाली संख्या, फिर i को संख्या के अंतिम कैरेक्टर के रूप में अपडेट करें
      • स्टैक टॉप := num * स्टैक टॉप
    • अन्यथा जब s[i] = '-'
      • i को 1 से बढ़ाएं
      • num := i-वें इंडेक्स से शुरू होने वाली संख्या, फिर i को संख्या के अंतिम कैरेक्टर के रूप में अपडेट करें
      • -num को स्टैक में इन्सर्ट करें
    • अन्यथा
      • num := i-वें इंडेक्स से शुरू होने वाली संख्या, फिर i को संख्या के अंतिम कैरेक्टर के रूप में अपडेट करें
      • num को स्टैक में इन्सर्ट करें
      • i को 1 से बढ़ाएं
  • स्टैक के एलिमेंट्स का योग लौटाएं

उदाहरण

class Solution(object):
    def calculate(self, s):
        \"\"\"
        :type s: str
        :rtype: int
        \"\"\"
        stack = []
        i = 0
        x=\"\"
        for j in s:
            if j !=\" \":
                x+=j
        s = x
        n = len(s)
        while i

इनपुट

\"3+2*2\"

आउटपुट

7

  1. Python में बाइनरी ट्री पोस्टऑर्डर ट्रैवर्सल Python में बाइनरी ट्री पोस्टऑर्डर ट्रैवर्सल

    मान लीजिए हमारे पास एक बाइनरी ट्री है। हमें इस ट्री का पोस्टऑर्डर ट्रैवर्सल पुनरावृत्त दृष्टिकोण का उपयोग करके ढूंढना है। इसलिए यदि ट्री इस तरह है −तो आउटपुट होगा: [9,15,7,10,-10]इसे हल करने के लिए, हम इन चरणों का पालन करेंगे −यदि रूट null है, तो खाली सरणी लौटाएंएक सरणी ret बनाएंstack := जोड़ी [root

  1. Python में हिस्टोग्राम में सबसे बड़ा आयत Python में हिस्टोग्राम में सबसे बड़ा आयत

    मान लीजिए हमारे पास एक पूर्णांक सरणी है जो हिस्टोग्राम की ऊंचाई दर्शाती है। प्रत्येक बार की इकाई चौड़ाई है। हमें निम्नानुसार सबसे बड़े क्षेत्र का आयत ढूंढना है −इसे हल करने के लिए, हम इन चरणों का पालन करेंगे −स्टैक बनाएं, i := 0, ans := 0 सेट करेंजब तक i < heights का आकार, तबयदि स्टैक में 0 तत्व हैं

  1. Python में वर्षा जल संग्रहण Python में वर्षा जल संग्रहण

    मान लीजिए हमारे पास n गैर-ऋणात्मक पूर्णांकों की एक सरणी है। ये एक ऊंचाई मानचित्र दर्शाते हैं जहां प्रत्येक बार की चौड़ाई 1 है, हमें गणना करनी है कि बारिश के बाद यह कितना पानी रोक सकता है। इसलिए मानचित्र इस तरह होगा −यहां हम 6 नीले बॉक्स देख सकते हैं, इसलिए आउटपुट 6 होगा।इसे हल करने के लिए, हम इन चरण