- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Program to generate array by concatenating subarrays of another array in Python
Suppose we have one 2D array called groups, and another array nums. We have to check whether we can select n disjoint subarrays from the array nums such that the ith subarray is equal to groups[i] (0-indexed), and if i > 0, the (i-1)th subarray will appear before the ith subarray in nums.
So, if the input is like groups = [[2,-2,-2],[4,-3,0]] nums = [1,-1,0,2,-2,-2,4,-3,0], then the output will be true because array group[0] is present from index 3 to 5 of nums and group[1] is from index 6 to 8 in nums.
To solve this, we will follow these steps −
i := 0
for each grp in groups, do
for j in range i to size of nums - 1, do
if subarray of nums[from index j to j+ size of grp] is same as grp, then
i := j + size of grp
come out from the loop
otherwise,
return False
return True
Example
Let us see the following implementation to get better understanding −
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))
Input
[[2,-2,-2],[4,-3,0]], [1,-1,0,2,-2,-2,4,-3,0]
Output
True