难以理解表达
Trouble comprehending expression
我正在做一个 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。
我正在做一个 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。