Arka fon
Şu anda bir AP Comp Sci A: Java sınıfındayım ve bazı arkadaşlarımı kod golf konusunda başlatmak istiyorum. Kurstan bir meydan okumam var ve topluluğun bu meydan okumayı kaç bayt yapabileceğini görmek istiyorum.
Zorluk detayları:
İki giriş dizesi (ana dize ve pivot dizesi) verildiğinde aşağıdakileri yapın:
Pivot dizesi tam olarak bir kez ana dizenin bir alt dizesi ise, ana dizenin pivot dizesinden önce gelen kısmı, söz konusu alt diziler içindeki sırayı korurken, pivot dizesinden önce gelen parça ile değiştirilir .
Örneğin:
Pivot dize boş veya Pivot dize ise değil ana dize içinde bulunan program tanımlı davranışa sahip olmak zorunda değildir.
Pivot dizesinin birden fazla örneği varsa, bölünme, pivotun ilk ve yalnızca ilk örneğinde gerçekleşmelidir.
Örnekler: Ana dize OneTwoThreeTwoOne
ve pivot dize Two
verildiğinde, çıktı olmalıdır ThreeTwoOneTwoOne
.
Ana dize 1Two2Two3Two4
ve pivot göz önüne alındığında, Two
çıktı olmalıdır 2Two3Two4Two1
.
Ana dize OneTwoThree
ve pivot dize "Two" verildiğinde, çıktı olmalıdır ThreeTwoOne
. Ana dize the rabbit is faster than the turtle
ve pivot dizesi verildiğinde
is faster than
(tek boşluk sonunu ve öncesini not edin), çıkış olmalıdır the turtle is faster than the rabbit
.
Ana dize 1-2-3-4-5-6
ve pivot verildiğinde, -
çıktı olmalıdır 2-3-4-5-6-1
.
Sonsöz:
Bu kod golf hakkında ilk sorum, bu yüzden önerileriniz veya yapıcı eleştirileriniz varsa, bunu söylemekten çekinmeyin.
Ayrıca, bu proje için kodum (derse odaklandığı için Java ile yazılmış) aşağıda bulunabilir. Eğer herhangi bir ipucu varsa, onları görmek isterim. Şu anda 363 bayt, ama eminim sizler çok daha iyi ve daha küçük çözümler üretebilirsiniz.
import java.util.Scanner;interface Main{static<T>void D(T f){System.out.println(f);}static void main(String[]A){Scanner s=new Scanner(System.in);D("Enter the first String:");String a=s.nextLine();D("Enter the pivot String:");String p=s.nextLine();if(p.isEmpty()|!a.contains(p)){D("Error: Pivot String not found.");return;}String w[]=a.split(p,2);D(w[1]+p+w[0]);}}
Not: Girişler ve pivot dizesinin bulunmadığı durumlar için metin, orijinal atama için zorunludur, ancak bu sınama için zorunlu değildir.
2-3-4-5-6-1
.
pivot='-'
vemain='1-2-3-4-5-6'
? Çoğu başvuru bunun için çıktı2-3-4-5-6-1
, ama ben anlamak zor gibi olmalıdır2-1-3-4-5-6
.