Решение
class Solution {
fun numRookCaptures(board: Array<CharArray>): Int {
var rookRow = -1
var rookCol = -1
for (i in board.indices) {
for (j in board[i].indices) {
if (board[i][j] == 'R') {
rookRow = i
rookCol = j
break
}
}
if (rookRow != -1) break
}
var captures = 0
val directions = arrayOf(
intArrayOf(-1, 0),
intArrayOf(1, 0),
intArrayOf(0, -1),
intArrayOf(0, 1)
)
for (dir in directions) {
var x = rookRow + dir[0]
var y = rookCol + dir[1]
while (x in 0..7 && y in 0..7) {
when (board[x][y]) {
'B' -> break
'p' -> {
captures++
break
}
}
x += dir[0]
y += dir[1]
}
}
return captures
}
}