B. Binary Period
题意:给定字符串 t t t,输出字符串 s s s( ∣ s ∣ |s| ∣s∣长度小于等于 2 ⋅ ∣ t ∣ 2·|t| 2⋅∣t∣),使得 s s s中的周期最小。
思路:判断 t t t中是否同时有 0 、 1 0、1 0、1
- 如果单一,最小周期为 1 1 1:直接输出
- 如果同时有 0 、 1 0、1 0、1,最小周期为 2 2 2:输出 01 01 01间隔串
int n;
int main(){
int t,tt,f1=0,f0=0,len;
LL x,a,b,y,ans;
cin>>t;
string s;
while(t--){
cin>>s;
f1=0;f0=0;
len=s.length();
for(int i=0;i<len;i++){
if(s[i]-'0')f1++;
else f0++;
}
if(f1==0){
for(int i=1;i<=len;i++)
cout<<"0";
cout<<endl;
continue;
}
if(f0==0){
for(int i=1;i<=len;i++)
cout<<"1";
cout<<endl;
continue;
}
if(s[0]=='0'){
for(int i=0;i<len;i++){
cout<<"01";
}
cout<<endl;
continue;
}
if(s[0]=='1'){
for(int i=0;i<len;i++){
cout<<"10";
}
cout<<endl;
continue;
}
}
}