Menu
CoddyTech

Number of Islands

OrtaGraflarpython iconjava iconcpp iconc iconjs icon+10

Harita, eşit uzunlukta satırlardan oluşan bir liste olarak verilir. Her karakter ya bir kara karesi olan 1 ya da bir su karesi olan 0 değeridir. İki kara karesi, biri diğerinin doğrudan üstünde, altında, solunda veya sağında bulunuyorsa aynı adaya aittir. Yalnızca köşelerinden dokunan kareler birbirine bağlı değildir.

["11000", "11000", "00100", "00011"] haritasını ele alalım:

  • sol üst köşedeki dört kara karesi bir ada oluşturur,
  • orta sıradaki tek kare, ilkine yalnızca köşesinden dokunduğu için ikinci bir adadır,
  • sağ alt köşedeki iki kare de üçüncü bir ada oluşturur.

Yani haritada 3 ada vardır.

Harita aslında bir grafiktir: her kara karesi bir düğümdür ve kenar, bir kenarı paylaşan iki kara karesini birleştirir. Ada sayısını bulmak, bu grafiğin bağlantılı parçalarını saymak demektir. Henüz ziyaret etmediğin bir kara karesi bulduğunda yeni bir ada bulmuş olursun ve sonraki adaya geçmeden önce o adanın tamamını keşfedersin.

numIslands adlı, grid değerini alan; 1 (kara) ve 0 (su) karakterlerinden oluşan bir dizge listesi olan ve ada sayısını döndüren bir işlev yazın. Bir ada, yukarı, aşağı, sola veya sağa bağlı kara karelerinden oluşan bir gruptur.

Örneğin, ["01110", "01000", "00011", "11001"] değeri 3 döndürür: üst sıradaki şekil, sağdaki grup ve sol alt köşedeki ikili.

Kısıtlamalar: 1 <= satır sayısı, sütun sayısı <= 150. Tüm satırlar aynı uzunluktadır.

Fonksiyon

numIslands(arg1: string-array) → integer
arg1string-array
Döndürürinteger

Örnekler

Girdi
arg1 = ["11000", "11000", "00100", "00011"]
Çıktı
3

lock iconGönderirken +13 gizli test

Kodu sıfırla
def numIslands(grid):
    # Kodu buraya yazın
Test durumları

Durum 1

Durum 2

Girdi

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

Beklenen

3