国王的魔镜 Time Limit:1000MS Memory Limit:65536K Description 国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍——只是,因为是镜子嘛,增加的那部分是反的。 Input 第一行是一个整数N(N<=10)表示测试数据的组数) Output 每组测试数据的输出只有一个整数,表示国王没使用魔镜前,最初的项链可能的最小长度。 Sample Input
2
ABBAABBA
A Sample Output
2
1 Source
|
[Submit] [Go Back] [Status] [Discuss]
#include<iostream>
#include<string>
using namespace std;
int main(){
int n;cin>>n;
while(n--){
string a;cin>>a;
int count=a.size();
if(a.size()%2==1){cout<<a.size()<<endl;break;}
bool flag=true;
while(count%2!=1){
for(int i=0,j=count-1; i<count/2; i++,j--){
if(a[i]==a[j])continue;
else flag=false;
}
if(flag)count=count/2;
else{cout<<count<<endl;break;}
}
if(flag)cout<<count<<endl;
}
return 0;
}