Фон
В настоящее время я учусь в AP Comp Sci A: Java, и я хочу начать с некоторыми из моих друзей заниматься гольфом. У меня есть вызов от курса, и я хотел бы видеть, сколько байтов сообщество может выполнить этот вызов.
Детали вызова:
Учитывая две входные строки, основную строку и строку сводки, сделайте следующее:
Если строка поворота в качестве подстроки основной строки указывается ровно один раз, часть основной строки, которая находится перед строкой поворота, должна быть заменена на часть, которая следует после, при сохранении порядка в указанных подстроках, подлежащего обмену .
Например:
Если строка сводки пуста или строка сводки не найдена в основной строке, программе не требуется определенное поведение.
Если имеется более одного экземпляра строки сводки, разделение должно происходить в первом и только в первом экземпляре сводки.
Примеры: Учитывая основную строку OneTwoThreeTwoOneи строку разворота Two, вывод должен быть ThreeTwoOneTwoOne.
Учитывая основную строку 1Two2Two3Two4и сводку Two, вывод должен быть 2Two3Two4Two1.
Учитывая основную строку OneTwoThreeи сводную строку «Два», вывод должен быть ThreeTwoOne. Учитывая основную строку the rabbit is faster than the turtleи строку разворота
is faster than
(обратите внимание на один пробел после и после), вывод должен быть the turtle is faster than the rabbit.
Учитывая основную строку 1-2-3-4-5-6и стержень -, вывод должен быть 2-3-4-5-6-1.
Послесловие:
Это мой первый вопрос о код-гольфе, так что если у вас есть предложения или конструктивная критика, не стесняйтесь так говорить.
Кроме того, мой код для этого проекта (написанный на Java, потому что курс посвящен этому) можно найти ниже. Если у вас есть какие-либо советы, я бы хотел их увидеть. В настоящее время его размер составляет 363 байта, но я уверен, что вы, ребята, можете придумать гораздо лучшие и более мелкие решения.
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]);}}
Примечание. Текст для входных данных и для случая, когда строка сводки не найдена, является обязательным для исходного присвоения, но не для этой задачи.
2-3-4-5-6-1.
pivot='-'иmain='1-2-3-4-5-6'?2-3-4-5-6-1Для этого выводится большинство заявок , но, как я понимаю, задача должна быть2-1-3-4-5-6.