Hintergrund
Ich bin zurzeit in einer AP Comp Sci A: Java-Klasse und möchte einige meiner Freunde mit dem Code-Golfen beginnen. Ich habe eine Herausforderung aus dem Kurs und möchte sehen, in wie vielen Bytes die Community diese Herausforderung durchführen kann.
Herausforderungsdetails:
Wenn zwei Eingabezeichenfolgen, die Hauptzeichenfolge und die Pivotzeichenfolge, angegeben werden, gehen Sie wie folgt vor:
Wenn die Pivot-Zeichenfolge genau einmal Teil der Hauptzeichenfolge ist, muss der Teil der Hauptzeichenfolge, der vor der Pivot-Zeichenfolge liegt, mit dem nachfolgenden Teil ausgetauscht werden , wobei die Reihenfolge innerhalb der auszutauschenden Unterzeichenfolgen beibehalten wird .
Beispielsweise:
Wenn die Pivot-Zeichenfolge leer ist oder die Pivot-Zeichenfolge nicht in der Hauptzeichenfolge gefunden wird, muss das Programm kein definiertes Verhalten aufweisen.
Wenn mehr als eine Instanz der Pivot-Zeichenfolge vorhanden ist, sollte die Aufteilung bei der ersten und nur bei der ersten Instanz des Pivots erfolgen.
Beispiele: Ausgehend von der Hauptzeichenfolge OneTwoThreeTwoOneund der Pivotzeichenfolge Twosollte die Ausgabe sein ThreeTwoOneTwoOne.
Wenn der Hauptstring 1Two2Two3Two4und der Drehpunkt gegeben sind Two, sollte die Ausgabe sein 2Two3Two4Two1.
Bei der gegebenen Hauptzeichenfolge OneTwoThreeund der Pivotzeichenfolge "Zwei" sollte die Ausgabe sein ThreeTwoOne. Gegeben die Hauptschnur the rabbit is faster than the turtleund die Pivotschnur
is faster than
(beachte das einzelne Leerzeichen nach und vor), sollte die Ausgabe sein the turtle is faster than the rabbit.
Wenn der Hauptstring 1-2-3-4-5-6und der Drehpunkt gegeben sind -, sollte die Ausgabe sein 2-3-4-5-6-1.
Nachwort:
Dies ist meine allererste Frage zum Thema Codegolf. Wenn Sie also Vorschläge oder konstruktive Kritik haben, können Sie dies gerne sagen.
Außerdem ist mein Code für dieses Projekt (in Java geschrieben, weil der Kurs darauf abzielt) unten zu finden. Wenn Sie Tipps haben, würde ich sie gerne sehen. Derzeit sind es 363 Bytes, aber ich wette, ihr könnt euch viel bessere und kleinere Lösungen einfallen lassen.
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]);}}
Hinweis: Der Text für die Eingaben und für den Fall, dass die Pivot-Zeichenfolge nicht gefunden wird, ist für die ursprüngliche Zuweisung obligatorisch, jedoch nicht für diese Herausforderung.
2-3-4-5-6-1.
pivot='-'undmain='1-2-3-4-5-6'? Die meisten Einreichungen geben2-3-4-5-6-1dies aus, aber so wie ich es verstehe, sollte es eine Herausforderung sein2-1-3-4-5-6.