akoj

编程入门 行业动态 更新时间:2024-10-25 10:25:14

akoj

akoj

国王的魔镜

Time Limit:1000MS  Memory Limit:65536K
Total Submit:43 Accepted:21

Description

国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍——只是,因为是镜子嘛,增加的那部分是反的。 
比如一条项链,我们用AB来表示,不同的字母表示不同颜色的珍珠。如果把B端接触镜面的话,魔镜会把这条项链变为ABBA。如果再用一端接触的话,则会变成ABBAABBA(假定国王只用项链的某一端接触魔镜)。 

给定最终的项链,请编写程序输出国王没使用魔镜之前,最初的项链可能的最小长度。 

Input

第一行是一个整数N(N<=10)表示测试数据的组数) 
每组测试数据占一行 只有一个字符串(长度小于100),由大写英文字母组成,表示最终的项链。

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;
}

更多推荐

akoj

本文发布于:2023-06-16 17:36:30,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/747811.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:akoj

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!