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

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

मान लीजिए कि हमारे पास संख्याओं का क्रम है, और अन्य दो सरणियाँ l और r आकार m की हैं, ये l और r श्रेणी प्रश्नों का प्रतिनिधित्व कर रहे हैं जैसे [l[i], r[i]]। हमें एक बूलियन अनुक्रम उत्तर खोजना है, जहां उत्तर [i] सत्य है जब सबअरे अंक [एल [i]], अंक [एल [i] + 1], ... अंक [आर [i] - 1], nums[r[i]] को अंकगणितीय अनुक्रम उत्पन्न करने के लिए व्यवस्थित किया जा सकता है, अन्यथा गलत।

एक अनुक्रम को अंकगणित कहा जाता है, यदि इसमें कम से कम दो तत्व होते हैं, और प्रत्येक दो लगातार तत्वों के बीच का अंतर समान होता है। उदाहरण के लिए, कुछ अंकगणितीय अनुक्रम हैं:[2, 4, 6, 8, 10], [5, 5, 5, 5], [4, -2, -8, -14], लेकिन नहीं [2, 2, 3, 6, 9]।

इसलिए, यदि इनपुट अंकों की तरह है =[6,8,7,11,5,9], l =[0,0,2], r =[2,3,5], तो आउटपुट [सच] होगा , असत्य, सत्य] क्योंकि -

  • क्वेरी के लिए [0, 2], अनुक्रम [6,8,7] है, इसे [6,7,8] के रूप में पुनर्व्यवस्थित किया जा सकता है, यह मान्य है

  • क्वेरी के लिए [0, 3], अनुक्रम [6,8,7,11] है, अंकगणितीय अनुक्रम में पुनर्व्यवस्थित नहीं किया जा सकता

  • क्वेरी के लिए [2, 5], अनुक्रम [7,11,5,9] है, [5,7,9,11] के रूप में पुनर्व्यवस्थित किया जा सकता है, यह मान्य है

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

  • नया :=l के समान आकार की एक सूची और सभी सही मानों से भरें

  • मैं के लिए 0 से लेकर l-1 के आकार तक, करो

    • डेटा :=इंडेक्स l[i] से r[i]

      . तक अंकों की सबलिस्ट
    • सूची डेटा सॉर्ट करें

    • d :=एक नई सूची

    • j के लिए 0 से लेकर डेटा के आकार - 2 तक, करें

      • डेटा डालें[j+1] - डेटा[j] d के अंत में

    • d :=d के नए सेट से एक नई सूची

    • यदि d का आकार 1 के समान नहीं है, तो

      • नया [i] :=गलत

  • नया लौटें

उदाहरण

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

def solve(nums, l, r):
   new = [True]*len(l)

   for i in range(len(l)):
      data = nums[l[i]:r[i]+1]
      data.sort()

      d = []
      for j in range(len(data) - 1):
         d.append(data[j+1] - data[j])

      d = list(set(d))
      if len(d) != 1:
         new[i] = False
   return new

nums = [6,8,7,11,5,9]
l = [0,0,2]
r = [2,3,5]
print(solve(nums, l, r))

इनपुट

[6,8,7,11,5,9], [0,0,2], [2,3,5]

आउटपुट

[True,False,True]

  1. प्रोग्राम यह जांचने के लिए कि क्या हम दिए गए स्ट्रिंग वर्णों से k palindromes बना सकते हैं या नहीं पायथन में?

    मान लीजिए कि हमारे पास एक स्ट्रिंग s और दूसरी संख्या k है, हमें यह जांचना होगा कि हम s में सभी वर्णों का उपयोग करके kpalindromes बना सकते हैं या नहीं। इसलिए, यदि इनपुट s =amledavmel k =2 जैसा है, तो आउटपुट ट्रू होगा, क्योंकि हम लेवल और मैडम बना सकते हैं। इसे हल करने के लिए, हम इन चरणों का पालन करे

  1. यह जांचने के लिए कार्यक्रम कि हम पायथन में सबसे बाईं या सबसे दाईं स्थिति तक पहुँच सकते हैं या नहीं

    मान लीजिए हमारे पास एक स्ट्रिंग है जिसमें तीन प्रकार, आर, बी, और डॉट (।) के अक्षर हैं। यहां R हमारी वर्तमान स्थिति के लिए है, B एक अवरुद्ध स्थिति के लिए है, और डॉट (।) एक खाली स्थिति के लिए है। अब, एक चरण में, हम अपनी वर्तमान स्थिति के लिए किसी भी आसन्न स्थिति में जा सकते हैं, जब तक कि यह वैध (खाली)

  1. यह जांचने के लिए कार्यक्रम कि हम किसी भी शहर से किसी भी शहर की यात्रा कर सकते हैं या नहीं, पायथन में

    मान लीजिए कि हमारे पास n शहर हैं जिन्हें [0, n) की श्रेणी में एक संख्या के रूप में दर्शाया गया है और हमारे पास एक तरफ़ा सड़कों की एक सूची भी है जो एक शहर को दूसरे शहर से जोड़ती है। हमें यह जांचना होगा कि क्या हम किसी शहर से किसी शहर तक पहुंच सकते हैं। इसलिए, यदि इनपुट n =3 जैसा है, तो सड़कें =[[0,