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