sfondo
Sono attualmente in un AP Comp Sci A: classe Java e voglio iniziare alcuni dei miei amici sul golf del codice. Ho una sfida dal corso e vorrei vedere in quanti byte la community può fare questa sfida.
Dettagli della sfida:
Dati due stringhe di input, la stringa principale e la stringa pivot, attenere alla seguente procedura:
Se la stringa pivot è esattamente una volta come sottostringa della stringa principale, la parte della stringa principale che precede la stringa pivot deve essere scambiata con la parte che segue, preservando allo stesso tempo l'ordine all'interno di tali sottotitoli .
Per esempio:
Se la stringa pivot è vuota o la stringa pivot non viene trovata nella stringa principale, il programma non deve avere un comportamento definito.
Se esiste più di un'istanza della stringa pivot, la divisione dovrebbe avvenire nella prima e solo nella prima istanza del pivot.
Esempi: data la stringa principale OneTwoThreeTwoOnee la stringa pivot Two, l'output dovrebbe essere ThreeTwoOneTwoOne.
Data la stringa principale 1Two2Two3Two4e pivot Two, l'output dovrebbe essere 2Two3Two4Two1.
Data la stringa principale OneTwoThreee la stringa pivot "Two", l'output dovrebbe essere ThreeTwoOne. Data la stringa principale the rabbit is faster than the turtlee la stringa pivot
is faster than
(notare il singolo spazio finale e precedente), l'output dovrebbe essere the turtle is faster than the rabbit.
Data la stringa principale 1-2-3-4-5-6e il perno -, l'output dovrebbe essere 2-3-4-5-6-1.
Epilogo:
Questa è la mia prima domanda in assoluto sul code golf, quindi se hai suggerimenti o critiche costruttive, sentiti libero di dirlo.
Inoltre, il mio codice per questo progetto (scritto in Java perché il corso si concentra su questo) può essere trovato sotto. Se hai qualche consiglio, mi piacerebbe vederli. Sono attualmente 363 byte, ma scommetto che voi ragazzi potete trovare soluzioni molto migliori e più piccole.
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]);}}
Nota: il testo per gli input e nel caso in cui la stringa pivot non venga trovata è obbligatorio per l'assegnazione originale, ma non per questa sfida.
2-3-4-5-6-1.
pivot='-'emain='1-2-3-4-5-6'? La maggior parte degli invii ha prodotto2-3-4-5-6-1questo risultato, ma a quanto ho capito la sfida dovrebbe essere2-1-3-4-5-6.