Menu
CoddyTech

Number of Islands

Trung bìnhĐồ thịpython iconjava iconcpp iconc iconjs icon+10

Bạn nhận được một bản đồ dưới dạng danh sách (list) các chuỗi (string) có độ dài bằng nhau, trong đó '1' là một ô đất và '0' là một ô nước. Hai ô đất thuộc cùng một hòn đảo nếu chúng chung một cạnh: trên, dưới, trái hoặc phải. Các ô chỉ chạm nhau ở góc thì không được tính là kết nối. Hãy trả về số hòn đảo.

Hàm

numIslands(grid: string-array) → integer
gridstring-array
mảng, mỗi hàng một chuỗi
Trả vềinteger
số lượng đảo

Ràng buộc

  • 1 ≤ grid.length ≤ 150
  • 1 ≤ grid[i].length ≤ 150
  • Mọi hàng đều có cùng độ dài.
  • Mỗi ký tự đều là '0' hoặc '1'.

Ví dụ

Đầu vào
grid = ["11000", "11000", "00100", "00011"]
Đầu ra
3
Giải thích
Bốn ô vuông ở góc trên bên trái tạo thành một hòn đảo. Ô vuông ở giữa hàng thứ ba chỉ chạm vào chúng ở một góc, nên đó là hòn đảo thứ hai. Cặp ô vuông ở góc dưới bên phải là hòn đảo thứ ba.
challenge icon

Câu hỏi mở rộng

Đất liền giờ xuất hiện từng ô một trên bản đồ nước. Bạn có thể báo số lượng hòn đảo sau mỗi ô mới mà không cần quét lại toàn bộ bản đồ không?

Đặt lại code
def numIslands(grid):
    # Viết code tại đây

Kiểm thử #1

Kiểm thử #2

Đối số

grid = ["11000", "11000", "00100", "00011"]

Đầu ra mong đợi

3