本文主要是介绍NYOJ 264 国王的魔镜,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
链接: click here
题意:
- 国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍——只是,因为是镜子嘛,增加的那部分是反的。
比如一条项链,我们用AB来表示,不同的字母表示不同颜色的珍珠。如果把B端接触镜面的话,魔镜会把这条项链变为ABBA。如果再用一端接触的话,则会变成ABBAABBA(假定国王只用项链的某一端接触魔镜)。
给定最终的项链,请编写程序输出国王没使用魔镜之前,最初的项链可能的最小长度。
思路:字符串处理题,其实判断一下对称
代码:
#include<stdio.h>
#include<string.h>
main()
{int z,x,q,i;char a[101],t[51];scanf("%d",&z);getchar();while(z--){gets(a);do{x=strlen(a);if(x%2) break;for(i=0;i<x/2;i++)t[i]=a[x-1-i];t[i]='\0';a[x/2]='\0';q=strcmp(a,t);}while(q==0);printf("%d\n",x);}
}
这篇关于NYOJ 264 国王的魔镜的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!