मान लीजिए, हमें एक सरणी प्रदान की जाती है जिसमें पूर्णांक तत्व होते हैं। यदि हम केवल एक स्वैप ऑपरेशन कर सकते हैं तो हमें यह पता लगाना होगा कि क्या सरणी में मानों को गैर-घटते क्रम में क्रमबद्ध किया जा सकता है। यदि संभव हो तो हम कहते हैं कि यह किया जा सकता है, अन्यथा नहीं।
इसलिए, यदि इनपुट इनपुट_लिस्ट =[7, 8, 12, 10, 11, 9] जैसा है, तो आउटपुट "किया जा सकता है"
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- temp_list :=सूची की एक प्रति input_list
- सूची को क्रमबद्ध करें temp_list
- स्वैप_गिनती :=0
- मेरे लिए 0 से लेकर input_list के आकार के लिए, करें
- अगर input_list[i] temp_list[i] के समान नहीं है, तो
- swap_count :=swap_count + 1
- अगर input_list[i] temp_list[i] के समान नहीं है, तो
- यदि स्वैप_काउंट 0 के समान है या स्वैप_काउंट 2 के समान है, तो
- सही लौटें
- अन्यथा,
- झूठी वापसी
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
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