264 国王的魔镜
2015-08-02 12:23
183 查看
国王的魔镜
时间限制:3000 ms | 内存限制:65535 KB难度:1
描述国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍——只是,因为是镜子嘛,增加的那部分是反的。
比如一条项链,我们用AB来表示,不同的字母表示不同颜色的珍珠。如果把B端接触镜面的话,魔镜会把这条项链变为ABBA。如果再用一端接触的话,则会变成ABBAABBA(假定国王只用项链的某一端接触魔镜)。
给定最终的项链,请编写程序输出国王没使用魔镜之前,最初的项链可能的最小长度。
输入第一行是一个整数N(N<=10)表示测试数据的组数)
每组测试数据占一行 只有一个字符串(长度小于100),由大写英文字母组成,表示最终的项链。
输出每组测试数据的输出只有一个整数,表示国王没使用魔镜前,最初的项链可能的最小长度。
样例输入
2 ABBAABBA A
样例输出
2 1
这个题考察的字符串处理,回文字符串的变形,也就是需要循环多次判断是否是回文,当然在总长度是奇数时,这个肯定不符合题意,直接输出.........
循环的限定是 是否前后完全匹配,而且长度是偶数..具体看代码注释...
#include<stdio.h>
#include<string.h>
int main()
{
int t,len,i,j;char x[105];
scanf("%d",&t);
getchar();
while(t--)
{
gets(x);int kase=1;//标记变量
len=strlen(x);
while(len%2==0)//循环限定
{
for(i=0;i<len/2;++i)//内部判断回文
{
if(x[i]!=x[len-i-1])
{
kase=0;//不满足直接跳出
break;
}
}
if(kase)
{
len/=2;//下次处理一半的情况
continue;
}
break;//不满足,继续跳出
}
printf("%d\n",len);//输出
}
return 0;
}
相关文章推荐
- 第14章 位图和位块传输_14.1-14.3 位图基础
- linux下函数调用栈Backtraces函数
- Codeforces 549 H. Degenerate Matrix
- 原来程序员也有不靠谱的,这年头竟然it界也开始骗子横行了
- maven的安装以及配置仓库
- 不要拿来就用
- operator new和operator new[]区别?
- Thread VS Process From Stackoverflow
- Lua面向对象
- 【iOS开发之Objective-C】数据持久化--文件和归档
- 30天自制操作系统day28
- cmake用cotire设置gcc的预编译头
- iBook文件的导出
- lua - 表
- 阶乘尾部的0
- linux驱动学习2——scull0模块
- hashset()的桶式结构,利用hashset()存储对象,存取速度快
- IntelliJ IDEA系列教程一 介绍&安装&配置
- c++ primer 学习笔记-第四章
- 华为机试题:超长正整数相加