describe
Given two integer arrays of equal length target and arr.
In one step, you can select any non-empty sub-array of arr and reverse it. You are allowed to make any number of steps.
Return True if you can make arr equal to target, or False otherwise.
Example 1:
Input: target = [1,2,3,4], arr = [2,4,1,3] Output: true Explanation: You can follow the next steps to convert arr to target: 1-reverse sub-array [2,4,1], arr becomes [1,4,2], Arr becomes [1,2,4,3] 3-reverse sub-array [4,3], Arr becomes [1,2,3,4] There are multiple ways to convert arr to target, this is not the only way to do so.Copy the code
Example 2:
Input: target = [7], arr = [7]
Output: true
Explanation: arr is equal to target without any reverses.
Copy the code
Example 3:
Input: target = [1,12], arr = [12,1]
Output: true
Copy the code
Example 4:
Input: target = [3,7,9], arr = [3,7,11]
Output: false
Explanation: arr doesn't have value 9 and it can never be converted to target.
Copy the code
Example 5:
Input: target = [1,1,1,1,1], arr = [1,1,1,1] Output: trueCopy the code
Note:
target.length == arr.length
1 <= target.length <= 1000
1 <= target[i] <= 1000
1 <= arr[i] <= 1000
Copy the code
parsing
If the elements in both arrays are the same, you just need to check whether the elements in both arrays are the same, because subarrays can be reversed, and as long as the elements are the same, they can be reversed exactly the same.
answer
class Solution(object):
def canBeEqual(self, target, arr):
"""
:type target: List[int]
:type arr: List[int]
:rtype: bool
"""
return True if Counter(target) == Counter(arr) else False
Copy the code
The results
Runtime: 64 ms, faster than 66.15% of Python online submissions for making Two Arrays Equal by Reversing sub-arrays. Memory Usage: Their submission in the Python online submissions for making Two Arrays Equal by Reversing sub-arrays.Copy the code
Original link: leetcode.com/problems/ma…
Your support is my biggest motivation