题目描述:
给定一个字符串s,请计算输出含有连续两个s作为子串的最短字符串。注意两个s可能有重叠部分。例如,“ababa"含有两个"aba”。
输入描述:
输入包括一个字符串s,字符串长度length(1 ≤ length ≤ 50),s中每个字符都是小写字母。
输出描述:
输出一个字符串,即含有连续两个s作为子串的最短字符串。
示例:
输入
abracadabra
输出
abracadabracada
C++代码
#include<iostream>
#include<string>
using namespace std;
string getShortestLength(string str)
{
int len=str.size();
if(len==0)
return "";
if(len==1)
{
return str+str;
}
string s;
int end=0;
for(int i=1;i<len;i++)
{
if(str.substr(len-i,i)==str.substr(0,i))
end=i;
}
return str+str.substr(end,len-end);
}
int main()
{
string str;
while(cin>>str)
{
string out=getShortestLength(str);
cout<<out<<endl;
}
return 0;
}
python代码:
def getShortes