Z05

Metin Hizalama Maliyeti

Başmühendis (Staff/Lead)
Hedef Süre: 40 - 50 Dakika
Tip: NUMERIC

Teknik Tanım & Görev

Bir dizgi sistemi, kelimeleri `genislik` karakterlik bir alana yerleştirecek. GÖRSEL KALİTEYİ sayısal olarak ölçen bir maliyet fonksiyonunu EN AZA indirir. Maliyet tanımı: • Bir satırdaki kelimelerin toplam uzunluğu + aralarındaki tek boşluklar hesaplanır. Satırda kalan BOŞ karakter sayısına "artık" denir. • O satırın maliyeti = (artık)² • SON SATIRIN maliyeti HER ZAMAN 0'dır (son satır sağa kadar doldurulmaz, doğal hâliyle bırakılır). • Toplam maliyet = tüm satırların maliyetlerinin toplamı. Kelimeler SIRASI DEĞİŞTİRİLMEDEN ve BÖLÜNMEDEN satırlara dağıtılmalıdır. Kelime tek başına genişlikten uzunsa -1 döndür.

Fonksiyon İmzası (Python)

min_hizalama_maliyeti(kelimeler: list[str], genislik: int) -> int

Girdi ve Çıktı Sözleşmesi

Çıktı Kuralı:Negatif olmayan tam sayı; yerleşim imkânsızsa -1. Boş liste için 0.

Sistem Kısıtları (Constraints)

0 <= kelimeler.length <= 500
1 <= genislik <= 100
1 <= kelimeler[i].length

Örnek Yürütme Analizi

kelimeler = ["merhaba","dunya"], genislik = 10
satır 1: "merhaba" (7) -> artık 3 -> maliyet 3² = 9
satır 2: "dunya" -> SON SATIR -> maliyet 0
toplam = 9
cevap: 9

Örnek Test Senaryoları (3)

Örnek 1
Girdi:[["merhaba","dunya"],10]
Beklenen Çıktı:9
Örnek 2: Tek Satıra Sığan (0 Maliyet)
Girdi:[["kisa","metin"],15]
Beklenen Çıktı:0
Örnek 3: İki Satıra Bölünme
Girdi:[["aa","bb","cc"],5]
Beklenen Çıktı:0
Python Editörü Yükleniyor...
Girdi Parametreleri
[
  [
    "merhaba",
    "dunya"
  ],
  10
]
Beklenen Çıktı
9