मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, जहां n तत्व मौजूद हैं। हमें यह जांचना होगा कि क्या हम पहले n प्राकृतिक संख्याओं के साथ एक सूची बना सकते हैं या तो बढ़ते या घटते फैशन में, जैसे [1, 2, ..., n] या [n, n - 1, ..., 1] को स्थानांतरित करके कितनी बार दाईं ओर अंक हों या नहीं।
इसलिए, यदि इनपुट nums =[5,6,1,2,3,4] की तरह है, तो आउटपुट सही होगा, क्योंकि हम उन्हें सरणी बनाने के लिए चार बार शिफ्ट कर सकते हैं [1,2,3,4, 5,6]
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- n :=अंकों का आकार
- 1 से n-1 की श्रेणी में i के लिए
- अगर |nums[i - 1] - nums[i]| 1 नहीं है और |nums[i - 1] - nums[i]| n-1 नहीं है, तो
- झूठी वापसी
- अगर |nums[i - 1] - nums[i]| 1 नहीं है और |nums[i - 1] - nums[i]| n-1 नहीं है, तो
- सही लौटें
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(nums): n = len(nums) for i in range(1, n): if abs(nums[i - 1] - nums[i]) != 1 and abs(nums[i - 1] - nums[i]) != n - 1: return False return True nums = [5,6,1,2,3,4] print(solve(nums))
इनपुट
[5,6,1,2,3,4]
आउटपुट
True