比如一條項鏈,我們用AB來表示,不同的字母表示不同顏色的珍珠。如果把B端接觸鏡面的話,魔鏡會把這條項鏈變為ABBA。如果再用一端接觸的話,則會變成ABBAABBA(假定國王只用項鏈的某一端接觸魔鏡)。
給定最終的項鏈,請編寫程序輸出國王沒使用魔鏡之前,最初的項鏈可能的最小長度。
2 ABBAABBA A
2 1
細節注意不到要人命啊!
ac碼:
#include#include char ch[105]; int fun(int len) { if(len<=1) return 0; int i=len/2,j=(len/2-1); while((i =0)) { if(ch[i]!=ch[j]) return 0; i++; j--; } if((i==len)&&(j==-1)) return 1; else return 0; } int main() { int n; scanf("%d",&n); while(n--) { scanf("%s",ch); int len=strlen(ch); while(fun(len)) { len=len/2; } printf("%d\n",len); } return 0; }