python all()

all(*iterable*)
Return True if all elements of the iterable are true (or if the iterable is empty). Equivalent to:

def all(iterable): 
    for element in iterable: 
        if not element: 
             return False 
    return True

https://leetcode.com/problems/matchsticks-to-square/#/description

class Solution(object):
    def makesquare(self, nums):
        """
        :type nums: List[int]
        :rtype: bool
        """
        nums = sorted(nums, reverse=True)
        sum_ = sum(nums)
        if not nums or len(nums) < 4 or any(num > sum_ // 4 for num in nums):
            return False
        if sum_ % 4 != 0:
            return False
        return self.dfs(nums, [0]*4, sum_ // 4)

    def dfs(self, nums, sides, target):
        if not nums:
            if all(side == target for side in sides): # all()
                return True
            else:
                return False
        for i in range(4):
            if sides[i] + nums[0] > target:
                continue
            sides[i] += nums[0]
            if self.dfs(nums[1:], sides, target):
                return True
            sides[i] -= nums[0]
        return False

你可能感兴趣的:(python all())