LeetCode 1640.能否連線形成陣列

菜鳥xk_110發表於2020-11-08

LeetCode1640.能否連線形成陣列

1.題目描述:

給你一個整數陣列 arr ,陣列中的每個整數 互不相同 。另有一個由整數陣列構成的陣列 pieces,其中的整數也 互不相同 。請你以 任意順序 連線 pieces 中的陣列以形成 arr 。但是,不允許 對每個陣列 pieces[i] 中的整數重新排序。

如果可以連線 pieces 中的陣列形成 arr ,返回 true ;否則,返回 false 。

示例 1:

輸入:arr = [85], pieces = [[85]]
輸出:true
示例 2:

輸入:arr = [15,88], pieces = [[88],[15]]
輸出:true
解釋:依次連線 [15] 和 [88]
示例 3:

輸入:arr = [49,18,16], pieces = [[16,18,49]]
輸出:false
解釋:即便數字相符,也不能重新排列 pieces[0]
示例 4:

輸入:arr = [91,4,64,78], pieces = [[78],[4,64],[91]]
輸出:true
解釋:依次連線 [91]、[4,64] 和 [78]
示例 5:

輸入:arr = [1,3,5,7], pieces = [[2,4,6,8]]
輸出:false

提示:

1 <= pieces.length <= arr.length <= 100
sum(pieces[i].length) == arr.length
1 <= pieces[i].length <= arr.length
1 <= arr[i], pieces[i][j] <= 100
arr 中的整數 互不相同
pieces 中的整數 互不相同(也就是說,如果將 pieces 扁平化成一維陣列,陣列中的所有整數互不相同)

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/check-array-formation-through-concatenation

2.python實現:

class Solution:
    def canFormArray(self, arr: List[int], pieces: List[List[int]]) -> bool:
        result = []
        for i in arr:
            for j in pieces:
                if i == j[0]:  
                    result += j
        return result == arr

相關文章