Z05
Metin Hizalama Maliyeti
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) -> intGirdi 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