Amaç
, Yazdırılabilir ASCII karakter dizesi kabul eden bir rutin yaz s ve aynı karakterleri içeren bir dize döndürür s hiçbir iki karakterli bir kereden fazla görünür alt dize böylece yeniden sıralanmış. Program, tüm kıyaslama dizelerini (aşağıya bakınız) modern bir bilgisayarda bir dakikadan kısa bir sürede işlemek zorundadır . Ayrıca , herhangi bir geçerli 30 karakterli dizeyi bir dakikadan kısa sürede işleyen en düşük puanlama cevabına 50 rep özel bir bonus vereceğim .
Örneğin, girdi verilmiş Mississippi
, geçerli bir çıkış olacağını issiMspiips
geçersiz çıktı yapılmamakla birlikte, (hiçbir iki karakterlik altdizgelerin iki kez görünür) ipMsispiiss
(alt dize beri is
iki kez görünür).
Rutin şu şekilde olabilir:
stdin
(veya eşdeğeri) veya komut satırından tam bir program okuması vestdout
(veya eşdeğeri)- tek bir dize bağımsız değişkenini kabul eden ve bir dize döndüren işlev
Giriş dizesinin her zaman en az bir geçerli çıktı kabul ettiğini varsayabilirsiniz.
Meydan okuma
Rutininiz, yeni satırlarla ayrılmış 5 veya daha fazla kod satırı içermelidir. Boş satırlar (yalnızca boşluk içeren satırları içerir) tüm bağlamlarda yok sayılır ve toplam satır sayısına dahil edilmez.
Kaynak kodunuzdaki iki satırı değiştirmek, önemli bir hataya neden olmalıdır . "Ölümcül hata" ile, aşağıdaki koşullardan herhangi birine atıfta bulunuruz:
- kaynak kodu derlenemez, derleyici / yorumlayıcı önemli bir hata bildirir
- rutin bir çalışma zamanı ölümcül hatası veya işlenmemiş çalışma zamanı istisnasıyla iptal edilir
- rutin, olası bir hata mesajı ve / veya yığın dökümü dışında herhangi bir çıktı üretmeyen ani, anormal bir program sonlandırmaya zorlanır
Alternatif olarak , satır yerine yeni satır karakteri içermeyen bitişik kod blokları kullanılabilir. Bu blokların her biri, kaynak kod derlenmeden / yorumlanmadan önce yeni satırların çıkarıldığı anlayışıyla kaynak dosyada kendi satırında görüntülenmelidir.
Örneğin, kod
aaaa
bbbb
cccc
yoğunlaşacak
aaaabbbbcccc
değerlendirilmeden önce.
Bu modda, ölümcül hata durumu herhangi iki kod bloğunun değiştirilmesi (ve böylece yeni satırlar çıkarılmadan önce kaynak kodundaki satırların değiştirilmesi) için geçerlidir. Bu nedenle, yukarıdaki örnekte rutinler aaaaccccbbbb
, bbbbaaaacccc
ve ccccbbbbaaaa
mutlaka bütün üretmek önemli hatalar, ya compiletime veya zamanında.
Bu alternatif modu kullanan gönderilerin kullanımı bildirilmelidir.
puanlama
Let , n ile kaynak dosyası boş olmayan textlines sayısı olduğu , n ≥ 5. Let c içerdiği bayt sayısı, en uzun TextLine sonda yeni satır sayım kaynak dosya (bayt uzunluğu).
Bir sunumun puanı c ( n + 10) ile verilir.
En düşük puana sahip başvuru kazanır.
İyi şanslar. ;)
Karşılaştırma Dizeleri
Abracadabra Alacazam
Is Miss. Mississauga Missing?
Ask Alaska's Alaskans
GGGGAAAATTTTCCCCgggaaatttccc
A Man A Plan A Canal Panama
Mspiisiipss
tek tekrarlama ii
gerçekleşmediği için geçerlidir Mississippi
mi?
CooliO
, çıkışoOoCli
?