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

यह जांचने के लिए कार्यक्रम कि क्या पहला खिलाड़ी अन्य की तुलना में अधिक कैंडी ले सकता है या नहीं, पायथन में

मान लीजिए कि हमारे पास कैंडी नामक संख्याओं की एक सूची है और दो व्यक्ति सबसे अधिक संख्या में कैंडी इकट्ठा करने के लिए दौड़ रहे हैं। यहां दौड़ बारी आधारित है, व्यक्ति 1 पहले शुरू कर रहा है, और प्रत्येक मोड़ में वह आगे या पीछे से कैंडी उठा सकता है। हमें यह जांचना होगा कि व्यक्ति 1 अन्य की तुलना में अधिक कैंडी जमा कर सकता है या नहीं।

इसलिए, यदि इनपुट कैंडीज की तरह है =[1, 4, 3, 8], तो आउटपुट ट्रू होगा, क्योंकि व्यक्ति 1 पहले दौर में 8 कैंडी ले सकता है और इस पर ध्यान दिए बिना कि दूसरा व्यक्ति 1 या 3, व्यक्ति 1 को चुनता है। बची हुई कोई भी कैंडी लेकर जीत सकते हैं।

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

  • एन:=कैंडीज का आकार

  • फ़ंक्शन अंतर () को परिभाषित करें। यह बाएँ, दाएँ ले जाएगा

  • यदि बायाँ दाएँ के समान है, तो

    • वापसी कैंडीज[बाएं]

  • अधिकतम वापसी (कैंडी [बाएं] - अंतर (बाएं + 1, दाएं)) और (कैंडी [दाएं] - अंतर (बाएं, दाएं - 1))

  • मुख्य विधि से निम्न कार्य करें -

  • अंतर (0, एन -1)> 0, अन्यथा गलत होने पर सही लौटें

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

उदाहरण

class Solution:
   def solve(self, candies):
      N = len(candies)
      def difference(left, right):
         nonlocal candies
         if left == right:
            return candies[left]
         return max(candies[left] − difference(left + 1, right), candies[right] − difference(left, right − 1))
      return difference(0, N − 1) > 0
ob = Solution()
candies = [1, 4, 3, 8]
print(ob.solve(candies))

इनपुट

[1, 4, 3, 8]

आउटपुट

True

  1. पायथन में नोड्स की अदला-बदली से दो पेड़ बन सकते हैं या नहीं, इसकी जाँच करने के लिए कार्यक्रम

    मान लीजिए कि हमारे पास दो पेड़ हैं, हमें यह जांचना होगा कि क्या हम किसी भी नोड के बाएँ और दाएँ सबट्री को कितनी भी बार स्वैप करके पहले पेड़ को दूसरे में बदल सकते हैं। तो, अगर इनपुट पसंद है तो आउटपुट सही होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - que1 :=शुरुआत में root0 वाली एक कतार

  1. पायथन में एक पेड़ दूसरे का उपवृक्ष है या नहीं यह जांचने का कार्यक्रम

    मान लीजिए कि हमारे पास दो बाइनरी ट्री हैं। हमें यह जांचना होगा कि दूसरा पेड़ पहले वाले का उप-वृक्ष है या नहीं। तो, अगर इनपुट पसंद है तो आउटपुट ट्रू होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - फ़ंक्शन को हल करें () परिभाषित करें। यह जड़ लेगा, लक्ष्य यदि रूट शून्य है और लक्ष्य भी

  1. पायथन में दिया गया ग्राफ द्विदलीय है या नहीं, यह जांचने के लिए कार्यक्रम

    मान लीजिए कि हमारे पास एक अप्रत्यक्ष ग्राफ है, हमें यह जांचना है कि ग्राफ द्विदलीय है या नहीं। जैसा कि हम जानते हैं कि एक ग्राफ द्विदलीय होता है जब हम ग्राफ के नोड्स को दो सेट ए और बी में विभाजित कर सकते हैं जैसे कि ग्राफ के प्रत्येक किनारे {यू, वी} में ए में एक नोड और बी में दूसरा नोड वी होता है।