मान लीजिए कि हमारे पास संख्याओं की एक अनियंत्रित सरणी है जिसे अंक कहा जाता है और सभी तत्व 0 से n-1 की सीमा में हैं। हम जितनी बार आवश्यक हो, आसन्न तत्वों को अंकों में स्वैप कर सकते हैं, लेकिन केवल तभी जब इन तत्वों के बीच पूर्ण अंतर 1 हो। हमें यह जांचना होगा कि हम अंकों को क्रमबद्ध कर सकते हैं या नहीं।
इसलिए, यदि इनपुट संख्या =[1, 0, 3, 2, 5, 4] की तरह है, तो आउटपुट सही होगा क्योंकि हम इन जोड़ियों को स्वैप कर सकते हैं [(1, 0), (3, 2), (5) , 4)] सॉर्ट करने के लिए [0, 1, 2, 3, 4, 5]।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- मैं के लिए 0 से लेकर अंकों के आकार - 2 तक, करते हैं
- यदि अंक[i]> अंक[i+1], तो
- यदि अंक[i] - अंक[i+1] 1 के समान है, तो
- अंकों का आदान-प्रदान करें[i] और अंक[i+1]
- अन्यथा,
- झूठी वापसी
- यदि अंक[i] - अंक[i+1] 1 के समान है, तो
- यदि अंक[i]> अंक[i+1], तो
- सही लौटें
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(nums): for i in range(len(nums) - 1): if nums[i] > nums[i+1]: if nums[i] - nums[i+1] == 1: nums[i], nums[i+1] = nums[i+1], nums[i] else: return False return True nums = [1, 0, 3, 2, 5, 4] print(solve(nums))
इनपुट
[1, 0, 3, 2, 5, 4]
आउटपुट
True