http://codeforces.com/problemset/problem/863/A
给出一个长数,问是否可以在最大位数的前面加上任意的0,使得整体是一个回文串
只要把原来的数的末尾所有连续的0去掉再判断剩下的是不是一个回文串即可
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;
int main(){
char a[111];
while(cin>>a)
{
int l=strlen(a);
int js=0;
int i,j;
for(i=l-1;i>=0;i--)
{
if(a[i]=='0')js++;
else break;
}
int flag=1;
for(i=0;i<=(l-js-1)/2;i++)
{
if(a[i]!=a[l-js-1-i])
{
flag=0;break;
}
}
if(flag)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}
本文介绍了一种算法,用于判断一个数字是否可以通过在其最高位前添加任意数量的零来形成一个回文串。主要步骤包括去除数字末尾的所有连续零,并检查剩余部分是否构成回文。

312

被折叠的 条评论
为什么被折叠?



