您的位置:首页 > 其它

给定一个字符串s,请计算输出含有连续两个s作为子串的最短字符串。

2017-09-09 11:33 435 查看
import java.util.Scanner;

public class OverlapStr {
public static void main(String [] args){
Scanner sc =new Scanner(System.in);
String str = sc.nextLine();
char [] array = str.toCharArray();
StringBuffer result = new StringBuffer(str);

int start1 =0;
int start2 =0;
boolean flag = false;
labelA:
for(int i=0; i<array.length;i++){

if((i==array.length-1)&&(flag==false)){
result.append(str);
break labelA;
}

labelB:
for (int j=i+1;j<array.length; j++){
if(array[i]==array[j]){
start1 = i;
start2 = j;
while((j<array.length)&&(array[i]==array[j]) ){

i++;
j++;
}

if(j==array.length){
StringBuffer temp = new StringBuffer();
for (int k=i;k<array.length;k++){
temp.append(array[k]);
}
result.append(new String(temp));
flag = true;
break labelA;

}else{
i= start1;
j= start2;
}

}

}

}

System.out.println(result);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐