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:
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__":