Contexte
Je suis actuellement dans une classe AP Comp Sci A: Java, et je veux commencer certains de mes amis sur le golf de code. J'ai un défi à relever pendant le cours, et j'aimerais voir dans combien d'octets la communauté peut relever ce défi.
Détails du défi:
Étant donné deux chaînes d'entrée, la chaîne principale et la chaîne pivot, procédez comme suit:
Si la chaîne pivot est exactement une fois en tant que sous-chaîne de la chaîne principale, la partie de la chaîne principale qui précède la chaîne pivot doit être permutée avec la partie qui suit, tout en préservant l'ordre dans lesdites sous-chaînes permutées. .
Par exemple:
Si la chaîne pivot est vide ou la chaîne pivot est pas trouvée dans la chaîne principale, le programme n'a pas besoin d'avoir un comportement défini.
S'il existe plusieurs instances de la chaîne pivot, la division doit se produire à la première et uniquement à la première instance du pivot.
Exemples: Étant donné la chaîne principale OneTwoThreeTwoOne
et la chaîne pivot Two
, la sortie doit être ThreeTwoOneTwoOne
.
Étant donné la chaîne principale 1Two2Two3Two4
et le pivot Two
, la sortie devrait être 2Two3Two4Two1
.
Étant donné la chaîne principale OneTwoThree
et la chaîne pivot "Two", la sortie devrait être ThreeTwoOne
. Étant donné la chaîne principale the rabbit is faster than the turtle
et la chaîne pivot
is faster than
(notez le seul espace qui suit et qui précède), la sortie devrait être the turtle is faster than the rabbit
.
Étant donné la chaîne principale 1-2-3-4-5-6
et le pivot -
, la sortie devrait être 2-3-4-5-6-1
.
Épilogue:
C'est ma toute première question sur le golf de code, donc si vous avez des suggestions ou des critiques constructives, n'hésitez pas à le dire.
De plus, mon code pour ce projet (écrit en Java parce que le cours se concentre sur cela) peut être trouvé ci-dessous. Si vous avez des conseils, j'adorerais les voir. C'est actuellement 363 octets, mais je parie que vous pouvez trouver des solutions bien meilleures et plus petites.
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]);}}
Remarque: Le texte pour les entrées et pour le cas où la chaîne pivot est introuvable est obligatoire pour l'affectation d'origine, mais pas pour ce défi.
2-3-4-5-6-1
.
pivot='-'
etmain='1-2-3-4-5-6'
? La plupart des soumissions produisent2-3-4-5-6-1
pour cela, mais si je comprends bien le défi que cela devrait être2-1-3-4-5-6
.