File tree 2 files changed +51
-2
lines changed
2025-05-May-LeetCoding-Challenge 2 files changed +51
-2
lines changed Original file line number Diff line number Diff line change
1
+ class Solution :
2
+ def pushDominoes (self , dominoes : str ) -> str :
3
+ n = len (dominoes )
4
+ forces = [0 ] * n
5
+
6
+ # forward pass
7
+ force = 0
8
+ for i in range (n ):
9
+ if dominoes [i ] == 'L' :
10
+ force = 0
11
+ elif dominoes [i ] == 'R' :
12
+ force = n
13
+ else :
14
+ force = max (0 , force - 1 )
15
+ forces [i ] += force
16
+
17
+ # backward pass
18
+ force = 0
19
+ for i in range (n - 1 , - 1 , - 1 ):
20
+ if dominoes [i ] == 'L' :
21
+ force = n
22
+ elif dominoes [i ] == 'R' :
23
+ force = 0
24
+ else :
25
+ force = max (0 , force - 1 )
26
+ forces [i ] -= force
27
+
28
+ # final state
29
+ result = ''
30
+ for force in forces :
31
+ if force > 0 :
32
+ result += 'R'
33
+ elif force < 0 :
34
+ result += 'L'
35
+ else :
36
+ result += '.'
37
+ return result
38
+
39
+
40
+ def main ():
41
+ dominoes = 'RR.L'
42
+ assert Solution ().pushDominoes (dominoes ) == 'RR.L'
43
+
44
+ dominoes = '.L.R...LR..L..'
45
+ assert Solution ().pushDominoes (dominoes ) == 'LL.RR.LLRRLL..'
46
+
47
+
48
+ if __name__ == '__main__' :
49
+ main ()
Original file line number Diff line number Diff line change 5
5
| Day | Problem | Level | Status |
6
6
| --- | --- | --- | --- |
7
7
| May 01 | [ 2071. Maximum Number of Tasks You Can Assign] ( https://leetcode.com/problems/maximum-number-of-tasks-you-can-assign/ ) | Hard | Solved |
8
- | May 02 | [ ] ( ) | | |
8
+ | May 02 | [ 838. Push Dominoes ] ( https://leetcode.com/problems/push-dominoes/ ) | Medium | Solved |
9
9
| May 03 | [ ] ( ) | | |
10
10
| May 04 | [ ] ( ) | | |
11
11
| May 05 | [ ] ( ) | | |
41
41
| Level | Problems | Solved | Unsolved |
42
42
| --- | --- | --- | --- |
43
43
| Easy | 0 | 0 | 0 |
44
- | Medium | 0 | 0 | 0 |
44
+ | Medium | 1 | 1 | 0 |
45
45
| Hard | 1 | 1 | 0 |
You can’t perform that action at this time.
0 commit comments