29
围绕枢轴反转字符串的两个部分
背景 我目前正在参加AP Comp Sci A:Java课程,并且想结识一些打高尔夫球的朋友。我在课程中遇到了挑战,我想看看社区可以在其中挑战多少字节。 挑战详情: 给定两个输入字符串,即主字符串和枢轴字符串,请执行以下操作: 如果枢轴字符串恰好是主字符串的子字符串一次,则主字符串中位于枢轴字符串之前的部分应与之后的部分交换,同时保留要交换的子字符串中的顺序。 例如: 如果转角字符串为空或枢轴字符串不是主字符串中发现,该方案不必有定义的行为。 如果枢轴字符串的实例不止一个,则拆分应在枢轴的第一个实例和仅第一个实例处进行。 示例:给定主字符串OneTwoThreeTwoOne和数据透视字符串Two,输出应为ThreeTwoOneTwoOne。 给定主字符串1Two2Two3Two4和枢轴Two,输出应为2Two3Two4Two1。 给定主字符串OneTwoThree和枢轴字符串“ Two”,输出应为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 …