Skip to content

Commit 9171260

Browse files
authoredMay 22, 2023
Create 0838-push-dominoes.kt
1 parent 86eb47b commit 9171260

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed
 

‎kotlin/0838-push-dominoes.kt

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
class Solution {
2+
fun pushDominoes(d: String): String {
3+
val domArr = d.toCharArray()
4+
val q = LinkedList<Pair<Int, Char>>()
5+
6+
for ((i, v) in domArr.withIndex()) {
7+
if (v != '.')
8+
q.addLast(i to v)
9+
}
10+
11+
while (q.isNotEmpty()) {
12+
val (i, v) = q.removeFirst()
13+
if (v == 'L' && i > 0 && domArr[i - 1] == '.') {
14+
q.addLast(i - 1 to 'L')
15+
domArr[i - 1] = 'L'
16+
} else if (v == 'R') {
17+
if (i + 1 < domArr.size && domArr[i + 1] == '.') {
18+
if (i + 2 < domArr.size && domArr[i + 2] == 'L') {
19+
q.removeFirst()
20+
} else {
21+
q.addLast(i + 1 to 'R')
22+
domArr[i + 1] = 'R'
23+
}
24+
}
25+
}
26+
}
27+
28+
return String(domArr)
29+
}
30+
}

0 commit comments

Comments
 (0)
Please sign in to comment.