您的位置:首页 > 其它

cf#305-A. Mike and Fax-回文串水题

2015-10-12 16:12 375 查看
http://codeforces.com/contest/548/problem/A

题意:

给出一个字符串

给出一个k

问字符串能否拆成k个长度相同的回文串

 首先 k>len 以及  len%k!=0 肯定都是不合法的

然后求出n=len/k,n个回文串,,直接从1开始判断是否每n个字符都是回文串即可。

#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <iostream>
#include <queue>
#include <map>
#include <set>
#include <vector>
using namespace std;
char tm[1005];

int main()
{
int k;
int i,j;
int flag;
scanf("%s",tm+1);
int len=strlen(tm+1);
scanf("%d",&k);
if (k>len||len%k!=0)
{
printf("NO\n");
return 0;
}
int n=len/k;
for (i=1;i<=len;i+=n)
{
int tmp[1005];
int tm2[1005];
for (j=1;j<=n;j++)
{
tmp[j]=tm[i-1+j];
tm2[n-j+1]=tmp[j];
}
flag=0;
for (j=1;j<=n;j++)
if (tm2[j]!=tmp[j])
{
flag=1;break;
}
if (flag)
{
printf("NO\n");
return 0;
}

}
if (!flag)
{
printf("YES\n");
}

return 0;

}

。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: