Files
wehub-resource-sync dde272c4b8
i18n - Build Validation / Validate i18n Builds (24) (push) Has been cancelled
CI - Node.js / Lint (24) (push) Has been cancelled
CI - Node.js / Build (24) (push) Has been cancelled
CI - Node.js / Test (24) (push) Has been cancelled
CI - Node.js / Test - Upcoming Changes (24) (push) Has been cancelled
CI - Node.js / Test - i18n (italian, 24) (push) Has been cancelled
CI - Node.js / Test - i18n (portuguese, 24) (push) Has been cancelled
CD - Docker - GHCR Images / Build and Push Images (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 11:55:53 +08:00

1.9 KiB

id, title, challengeType, dashedName
id title challengeType dashedName
69b58ce40693f140c84c855c Challenge 243: Rook Attack 29 challenge-243

--description--

Given two strings for the location of two rooks on a chess board, determine if they can attack each other.

A standard chessboard is 8x8, with columns labeled A through H (left to right) and rows labeled 1 through 8 (bottom to top). It looks like this:

A8 B8 C8 D8 E8 F8 G8 H8
A7 B7 C7 D7 E7 F7 G7 H7
A6 B6 C6 D6 E6 F6 G6 H6
A5 B5 C5 D5 E5 F5 G5 H5
A4 B4 C4 D4 E4 F4 G4 H4
A3 B3 C3 D3 E3 F3 G3 H3
A2 B2 C2 D2 E2 F2 G2 H2
A1 B1 C1 D1 E1 F1 G1 H1

Rooks can move as many squares as they want in a horizontal or vertical direction. So if they are on the same row or column, they can attack each other.

--hints--

rook_attack("A1", "A8") should return True.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertIs(rook_attack("A1", "A8"), True)`)
}})

rook_attack("B4", "F4") should return True.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertIs(rook_attack("B4", "F4"), True)`)
}})

rook_attack("E3", "D4") should return False.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertIs(rook_attack("E3", "D4"), False)`)
}})

rook_attack("H7", "F6") should return False.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertIs(rook_attack("H7", "F6"), False)`)
}})

--seed--

--seed-contents--

def rook_attack(rook1, rook2):

    return rook1

--solutions--

def rook_attack(rook1, rook2):
    return rook1[0] == rook2[0] or rook1[1] == rook2[1]