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