题目链接:国王的魔镜 - 洛谷
题目难度:普及-
涉及知识点:判断回文
题意:
分析:先判断是否是2的倍数,再判断回文
AC代码:
#include<bits/stdc++.h>
using namespace std;
char a[1000000005];//开大一点,不然会错
int ans=0;
void f(int b){
if(b%2==1){//复制字符串的逆推过程
cout<<b;
return ;
}
else{
for(int i=1;i<=b/2;i++){
if(a[i]!=a[b-i-1]){//回文判断,一个正,一个逆,用reverse判断也可以
cout<<b;
return ;
}
}
ans++;
f(b/2);}//每次/2,去掉复制的
}
int main(){
cin>>a;
int len=strlen(a);//字符串字母数
f(len);
return 0;}
总结:先判断是否是2的倍数,再判断回文