Tất cả thử thách
Trung bình 0 đã giải Tỷ lệ chấp nhận 0%

Minesweeper Neighbor Counts

Annotate a rectangular board.

Đề bài

Annotate a rectangular board. A star (*) is a mine and a dot (.) is a safe cell. For each safe cell, count mines in the eight surrounding cells, including diagonals. Replace it with the count from 1 to 8, or keep a dot if the count is zero. Preserve every mine. Cells outside the board do not exist.

Implement minesweeper_neighbor_counts(board).

Input

board: The rows from top to bottom; characters run left to right.

Output

Return the annotated rows in the same order and dimensions.

Ràng buộc

1 ≤ rows, columns ≤ 200. Every row has the same nonzero length and contains only * and . .

Ví dụ

Ví dụ 1
Đầu vào:
board = ["*..", "...", "..*"]

Kết quả mong đợi:
expected = ["*1.", "121", ".1*"]
Đầu vào:
std::vector<std::string> board = {"*..", "...", "..*"};

Kết quả mong đợi:
std::vector<std::string> expected = {"*1.", "121", ".1*"};
Đầu vào:
string[] board = new string[] {"*..", "...", "..*"};

Kết quả mong đợi:
string[] expected = new string[] {"*1.", "121", ".1*"};

Giải thích

The center touches both mines, so its count is 2. The top-right and bottom-left touch none and stay dots. Other safe cells touch one mine.

Ví dụ 2
Đầu vào:
board = ["..."]

Kết quả mong đợi:
expected = ["..."]
Đầu vào:
std::vector<std::string> board = {"..."};

Kết quả mong đợi:
std::vector<std::string> expected = {"..."};
Đầu vào:
string[] board = new string[] {"..."};

Kết quả mong đợi:
string[] expected = new string[] {"..."};

Giải thích

This one-row board has no mines. All counts are zero, so every dot remains a dot.

Tham khảo

Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.

Học hỏi từ người khác

Giải pháp cộng đồng

Chưa có giải pháp nào được chia sẻ. Hãy giải thử thách này để đăng giải pháp đầu tiên.