O09
Satır Kırma
Teknik Tanım & Görev
Bir terminal uygulaması, uzun bir metni sabit genişlikte bir alana sığdırmak istiyor. Metin kelimeler hâlinde veriliyor ve şu AÇGÖZLÜ (greedy) kuralla satırlara bölünüyor:
• Soldan sağa kelime kelime ilerle.
• Mevcut satıra bir kelime daha eklemek, satırı `genislik` karakteri AŞMIYORSA ekle (kelimeler arasına tam bir boşluk konur).
• Aşıyorsa mevcut satırı kapat ve kelimeyi YENİ bir satıra başlat.
• Bir kelime tek başına `genislik`ten uzunsa KESİLMEDEN kendi satırında durur (o satır genişliği aşabilir; bu istisnadır).
Satırları `\n` karakteriyle birleştirip TEK BİR METİN olarak döndür. Satır sonlarında HİÇBİR ZAMAN fazladan boşluk olmaz.
Fonksiyon İmzası (Python)
satirlara_bol(kelimeler: list[str], genislik: int) -> strGirdi ve Çıktı Sözleşmesi
Çıktı Kuralı:Satırların '\n' ile birleşmiş hâli. Boş liste için "". Sonda '\n' yoktur.
Sistem Kısıtları (Constraints)
0 <= kelimeler.length <= 10^4
1 <= genislik <= 100
kelimeler boşluk içermez, uzunlukları >= 1Örnek Yürütme Analizi
kelimeler = ["merhaba","dunya","nasil","gidiyor"], genislik = 10
"merhaba" (7) -> satır 1
"dunya" (5) -> 7+1+5=13 > 10 -> satır 2: "dunya"
"nasil" (5) -> 5+1+5=11 > 10 -> satır 3: "nasil"
satır 4: "gidiyor"
cevap: "merhaba\ndunya\nnasil\ngidiyor" Örnek Test Senaryoları (3)
Örnek 1
Girdi:
[["merhaba","dunya","nasil","gidiyor"],10]Beklenen Çıktı:
"merhaba\ndunya\nnasil\ngidiyor"Örnek 2: 7 Karakter Satırlar
Girdi:
[["bu","bir","test"],7]Beklenen Çıktı:
"bu bir\ntest"Örnek 3: Tek Kısa Kelime
Girdi:
[["kısa"],10]Beklenen Çıktı:
"kısa"