1114: 【作】【基础】国王的魔镜
内存限制:16 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:8
解决:8
题目描述
国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍——只是,因为是镜子嘛,增加的那部分是反的。 比如一条项链,我们用AB来表示,不同的字母表示不同颜色的珍珠。如果把B端接触镜面的话,魔镜会把这条项链变为ABBA。如果再用一端接触的话,则会变成ABBAABBA(假定国王只用项链的某一端接触魔镜)。 给定最终的项链,请编写程序输出国王没使用魔镜之前,最初的项链可能的最小长度。
输入
只有一个字符串,由大写英文字母组成,表示最终的项链。
输出
只有一个整数,表示国王没使用魔镜前,最初的项链可能的最小长度。
样例输入 复制
ABBAABBA
样例输出 复制
2
提示
#include<bits/stdc++.h> using namespace std; int main(){ string s; cin>>s; while (s.size()>0) { int n=s.size(); for (int i=0;i<=n/2;i++) if (s[i]!=s[n-1-i]) { cout<<n; return 0; } s=s.substr(0,n/2); } cout<<1; return 0; }