算法 - 给出一个字符串str,输出包含两个字符串str的最短字符串,如str为abca时,输出则为abcabca

时间:2022-10-21 15:02:41
今天碰到一个算法题觉得比较有意思,研究后自己实现了出来,代码比较简单,如发现什么问题请指正。
思路和代码如下: 基本思路:
从左开始取str的最大子字符串,判断子字符串是否为str的后缀,如果是则返回str加子字符串剩余部分;如果不是则逐步减少子字符串长度后在进行比较。
/*
* 给出一个字符串s,输出包含两个字符串s的最短字符串,如s为abca时,输出则为abcabca
*/
public class ContainTwoString {
public static String MergeString(String str) {
String results = null;
int len = str.length();
for (int i = len-1;i>+0;i--){
String prefix = str.substring(0, i);
if (str.endsWith(prefix)){
results = str + str.substring(i,len);
}
}
return results;
} public static void main(String args[]){
System.out.println(ContainTwoString.MergeString("abca"));
}
}