O09

Satır Kırma

Kıdemli Aday (Mid/Senior)
Hedef Süre: 25 - 35 Dakika
Tip: STRING

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) -> str

Girdi 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"
Python Editörü Yükleniyor...
Girdi Parametreleri
[
  [
    "merhaba",
    "dunya",
    "nasil",
    "gidiyor"
  ],
  10
]
Beklenen Çıktı
"merhaba\ndunya\nnasil\ngidiyor"