leetcode

Leetcode Solutions (0x6A73)
git clone https://git.pngu.org/leetcode
Log | Files | Refs | Submodules | README

commit 49bee6fe4ccb5116cbbbc7623933d51e11e55e25
parent f055c57fd475f4ebc5f206917621c5e5cd5a9bc7
Author: Jack Sangdahl <jack@pngu.org>
Date:   Sun, 26 Oct 2025 22:47:48 -0600

2125. number of laser beams in a bank

Diffstat:
Mnum_laser_beams_bank.c | 12++++++------
Mnum_laser_beams_bank.py | 16+++++-----------
2 files changed, 11 insertions(+), 17 deletions(-)

diff --git a/num_laser_beams_bank.c b/num_laser_beams_bank.c @@ -13,9 +13,9 @@ * the total number of laser beams in the bank. */ -int numberOfBeams(char **bank, int bank_size) { +int numberOfBeams(char **bank, int bankSize) { int ans = 0, start = 0; - for (int i = 0; i < bank_size; i++) { + for (int i = 0; i < bankSize; i++) { int n = 0; for (int j = 0;; j++) { if (!bank[i][j]) @@ -33,8 +33,8 @@ int numberOfBeams(char **bank, int bank_size) { } int main() { - char **b1 = {"011001", "000000", "010100", "001000"}; - char **b2 = {"000", "111", "000"}; - printf("%d\n", numberOfBeams(b1, 4)); // expect: 8 - printf("%d\n", numberOfBeams(b2, 3)); // expect: 0 + char *b1[] = {"011001", "000000", "010100", "001000"}; + char *b2[] = {"000", "111", "000"}; + printf("%d\n", numberOfBeams(b1, ARRAY_SIZE(b1))); // expect: 8 + printf("%d\n", numberOfBeams(b2, ARRAY_SIZE(b2))); // expect: 0 } diff --git a/num_laser_beams_bank.py b/num_laser_beams_bank.py @@ -19,17 +19,11 @@ class Solution(object): :type bank: List[str] :rtype: int """ - pre, tot = 0, 0 - for row in bank: - curr = self.calc(row) - if curr == 0: - continue - tot += curr * pre - pre = curr - return tot - - def calc(self, s): - return sum(int(c) for c in s) + return ( + (dev := [row.count("1") for row in bank if row.count("1")]) + and sum(x * y for x, y in zip(dev[1:], dev[:-1])) + or 0 + ) if __name__ == "__main__":