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

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


मान लीजिए हमें एक सरणी दी गई है जिसमें पूर्णांक तत्व हैं। हमें यह पता लगाना है कि क्या सरणी में मानों को गैर-घटते क्रम में क्रमबद्ध किया जा सकता है यदि हम केवल एक स्वैप ऑपरेशन कर सकते हैं। यदि संभव है, तो हम कहते हैं "Can be done", अन्यथा नहीं।

उदाहरण के लिए, यदि input_list = [7, 8, 12, 10, 11, 9] है, तो आउटपुट "Can be done" होगा।

हल करने का तरीका

  1. temp_list := input_list की एक प्रति
  2. temp_list को सॉर्ट करें
  3. swap_count := 0
  4. प्रत्येक इंडेक्स के लिए: यदि input_list[i] ≠ temp_list[i], तो swap_count बढ़ाएं
  5. यदि swap_count 0 या 2 है, तो True लौटाएं ("Can be done")
  6. अन्यथा False लौटाएं ("Can't be done")

एक स्वैप से अधिकतम दो स्थान गलत हो सकते हैं, इसलिए swap_count 2 होना चाहिए (या 0 यदि पहले से क्रमबद्ध)।

उदाहरण

from copy import deepcopy

def solve(input_list):
    temp_list = deepcopy(input_list)
    temp_list.sort()
    swap_count = 0
    for i in range(len(input_list)):
        if input_list[i] != temp_list[i]:
            swap_count += 1
    if swap_count == 0 or swap_count == 2:
        print("Can be done")
    else:
        print("Can't be done")

input_list = [7, 8, 12, 10, 11, 9]
solve(input_list)

इनपुट

[7, 8, 12, 10, 11, 9]

आउटपुट

Can be done
  1. - पायथन में एक स्वैप के साथ पिछला क्रमपरिवर्तन

    मान लीजिए हमारे पास सकारात्मक पूर्णांकों की एक सरणी A है (जरूरी नहीं कि अद्वितीय हो), हमें लेक्सिकोग्राफिक रूप से सबसे बड़ा क्रमपरिवर्तन ढूंढना है जो A से छोटा हो, जिसे एक स्वैप (एक स्वैप दो संख्याओं A[i] और A[j] की स्थितियों का आदान-प्रदान करता है) से बनाया जा सकता है। यदि यह संभव नहीं है, तो वही स

  1. - Python में जांचें कि क्या कोई संख्या क्रमबद्ध सरणी में बहुमत तत्व है

    मान लीजिए हमारे पास एक सरणी है जिसे nums कहा जाता है और यह गैर-घटते क्रम में क्रमबद्ध है, और एक संख्या target है। हमें यह पता लगाना है कि क्या target एक बहुमत तत्व है। एक सरणी में एक बहुमत तत्व वह तत्व है जो लंबाई N की सरणी में N/2 से अधिक बार प्रकट होता है। इसलिए यदि सरणी जैसी है - [2,4,5,5,5,5,5,6

  1. - पायथन में क्रमबद्ध सरणी मर्ज करें

    मान लीजिए हमारे पास दो क्रमबद्ध सरणी A और B हैं। हमें उन्हें मर्ज करना है और केवल एक क्रमबद्ध सरणी C बनाना है। सूचियों का आकार भिन्न हो सकता है। उदाहरण के लिए, मान लीजिए A = [1,2,4,7] और B = [1,3,4,5,6,8], तो मर्ज की गई सूची C [1,1,2,3,4,4,5,6,7,8] होगी। हल करने के चरण i := 0, j := 0 और end := A क