微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法理解表达

如何解决无法理解表达

我正在做一个 leetcode 问题,在查看解决方案时,我对解决方案中的某行感到非常傻眼。 leetcode 问题尤其是 https://leetcode.com/problems/binary-subarrays-with-sum/

解决办法:

class Solution:
    def numSubarraysWithSum(self,A: List[int],S: int) -> int:

        res = 0
        sm = 0
        sums = collections.defaultdict(int)

        for a in A:
            sm += a
            res += sums[sm - S] + (sm == S)
            sums[sm] += 1
        return res

我理解除了这条线之外发生的一切:

   res += sums[sm - S] + (sm == S)

我以前从未在加法运算中见过条件。

解决方法

条件表达式计算为布尔值,在 Python 中只是 int 的子类型。 False 为 0,True 为 1,因此如果 sm == S 等于 sm,添加 S 与添加 1 或否则添加 0 相同。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。