Bazen bir cümle yazarken, dikkatim dağılıyor ve sonunda aynı iki kelimeyi iki kez art arda iki kez yazıyordum.
Başkalarının bu konuda rahatsız olmadıklarından emin olmak için , sizin göreviniz bu sorunu çözen bir program yazmak!
Görev
Bir giriş dizesi verildiğinde (diliniz için önemliyse, satır beslemesi içermeyen yalnızca ASCII girişini kabul edebilirsiniz.) str
, ortası bir yerde , Ortasındaki herhangi bir yerde, art arda iki kez meydana gelen bir alt dizeyi içeren, dizeyi bunun bir örneğiyle döndürün. substring kaldırıldı.
Birden fazla olasılık olması durumunda, mümkün olan en kısa cevabı döndürün (yani, en uzun ardışık yinelenen alt dizeyi seçin ve bunu kaldırın).
Birden fazla, aynı derecede uzun ardışık tekrarlayan alt diziler söz konusu olduğunda, ilkini (dize önden arkaya okurken ilk karşılaşılan) çıkarın.
Girişin doğru olduğunu varsayalım (yani her zaman ardışık tekrarlayan bir alt dize içerir), bu onu düşürmeye yardımcı olabilir.
Örnekler
- Giriş:
hello hello world
-> Çıkış:hello world
. - Giriş:
foofoo
-> Çıkış:foo
. (Yani: Evet, dizi yalnızca iki kez tekrarlayan bölümden oluşabilir). - Girdi:
aaaaa
-> Çıktı:aaa
En uzun tekrarlayan ardışık alt dize burada olduğundanaa
. - Giriş:
Slartibartfast
-> Bu geçerli bir giriş değildir, çünkü art arda tekrarlayan bir alt dize içermez, bu nedenle bu durumu ele almanıza gerek yoktur. - Giriş:
the few the bar
-> Bu başka bir geçersiz giriş, çünkü yinelenen bölüm hemen orijinal bölümü takip etmelidir. Bu durumdathe
vethe
bu giriş geçersiz nedenle, arada başka bir şey ile ayrılır. - Girdi:
ababcbc
-> Çıktı:abcbc
. Mümkün olan en uzun iki ardışık yinelenen alt dizgeab
vebc
. Gibiab
dizede daha erken karşılaşıldığında, bu bir doğru cevaptır. - Girdi:
Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo
. Çıktı:Buffalo buffalo buffalo buffalo Buffalo buffalo
. (Yapılan değiştirme büyük / küçük harf duyarlı olmalıdır). - Girdi:
Sometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice couple of words twice in succession.
-> Çıktı:Sometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice in succession.
. Yalnızca en uzun ardışık yinelenen alt dize kaldırılır.
Kodunuz mümkün olduğu kadar kısa olmalıdır, çünkü bu kod golf olduğundan, bayt cinsinden en kısa cevap kazanır. İyi şanslar!
p
varhappens
Sometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice couple of words twice in succession.
girdi gibidir, çıktı olmalıdırSometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice in succession.
. Yalnızca en uzun bulunan çoğaltma kaldırılır.