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

पायथन में कितने प्रश्नों को वैध अंकगणितीय अनुक्रम मिलता है यह जांचने के लिए कार्यक्रम

मान लीजिए हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है और प्रश्नों की सूची भी है। जहां प्रत्येक क्वेरी तत्व में [i, j] होता है। तो यह प्रश्न पूछ रहा है कि [i, j] (दोनों समावेशी) से अंकों की सबलिस्ट अंकगणितीय अनुक्रम है या नहीं। तो अंत में हमें उन प्रश्नों की संख्या का पता लगाना होगा जो सत्य लौटते हैं।

इसलिए, यदि इनपुट अंकों की तरह है =[2, 4, 6, 8, 7, 6, 5, 2] प्रश्न =[[3, 4], [0, 3], [2, 4]], तो आउटपुट 2 होगा, क्योंकि [2, 4, 6, 8] एक अंकगणितीय अनुक्रम है, इसलिए क्वेरी [0, 3] सत्य है। और [8, 7] के लिए भी एक अंकगणितीय अनुक्रम है, इसलिए क्वेरी [3, 4] भी सत्य है। लेकिन [6, 8, 7] एक अंकगणितीय अनुक्रम नहीं है, इसलिए [2, 4] सत्य नहीं है।

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

  • यदि अंक खाली हैं, तो
    • वापसी 0
  • n :=अंकों का आकार
  • diff :=तत्वों के साथ एक सूची (nums[i + 1] - nums[i]) प्रत्येक i के लिए 0 से n - 2 तक
  • rle :=आकार की एक सूची (n - 1) और 0 से भरें
  • मैं के लिए 0 से n - 2 की सीमा में, करते हैं
    • अगर i> 0 और diff[i], diff[i - 1] के समान है, तो
      • rle[i] :=rle[i - 1] + 1
    • अन्यथा,
      • rle[i] :=1
  • उत्तर:=0
  • प्रश्नों में प्रत्येक (i, j) के लिए, करें
    • यदि i, j के समान है, तो
      • उत्तर:=उत्तर + 1
    • अन्यथा,
      • उत्तर:=उत्तर + (1 यदि rle[j - 1]>=(j - i), अन्यथा 0)
  • वापसी उत्तर

उदाहरण

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

def solve(nums, queries):
   if not nums:
      return 0

   n = len(nums)
   diff = [nums[i + 1] - nums[i] for i in range(n - 1)]

   rle = [0] * (n - 1)
   for i in range(n - 1):
      if i > 0 and diff[i] == diff[i - 1]:
         rle[i] = rle[i - 1] + 1
      else:
         rle[i] = 1

   ans = 0
   for i, j in queries:
      if i == j:
         ans += 1
      else:
         ans += rle[j - 1] >= (j - i)
   return ans

nums = [2, 4, 6, 8, 7, 6, 5, 2]
queries = [[3, 4],[0, 3],[2, 4]]
print(solve(nums, queries))

इनपुट

[2, 4, 6, 8, 7, 6, 5, 2], [[3, 4],[0, 3],[2, 4]]

आउटपुट

2

  1. यह जांचने के लिए कार्यक्रम कि हम कितने तरीकों से अजगर में एक मैट्रिक्स की खाली कोशिकाओं को चुन सकते हैं

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

  1. पायथन प्रोग्राम में दी गई संख्या एक फाइबोनैचि संख्या है या नहीं, इसकी जांच कैसे करें?

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे - समस्या कथन किसी संख्या n को देखते हुए, जाँच करें कि n एक फाइबोनैचि संख्या है या नहीं हम सभी जानते हैं कि nवीं फाइबोनैचि संख्या पिछले दो फाइबोनैचि संख्याओं का योग है। लेकिन वे पुनरावृत्ति संबंध के अलावा एक दिलचस्प संबंध भी प्रस्त

  1. पायथन प्रोग्राम कैसे जांचें कि दी गई संख्या एक फाइबोनैचि संख्या है या नहीं?

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे - समस्या कथन किसी संख्या n को देखते हुए, जाँच करें कि n एक फाइबोनैचि संख्या है या नहीं हम सभी जानते हैं कि nवीं फाइबोनैचि संख्या पिछले दो फाइबोनैचि संख्याओं का योग है। लेकिन वे पुनरावृत्ति संबंध के अलावा एक दिलचस्प संबंध भी प्रस्त