您的位置:首页 > 其它

暑假集训——个人训练赛04——A题

2015-07-23 18:19 169 查看
字符串处理

题意:一个字符串,判断是否可以只插入一个字符就让该字符串变成回文,如果可以输出变成后的回文,不可以输出NA。

思路:枚举字符串的相邻两个字符之间的位置,然后插入一个新字符,判断这新的字符串是否是回文

#include<stdio.h>
#include<string.h>

char s[100];
char t[100];
int len,flag;

bool is()//判断是否是回文
{
for(int i=0,j=len;i<=j;i++,j--)
{
if(t[i]!=t[j]) return false;
}
return true;
}

int main()
{
while(~scanf("%s",s))
{
len=strlen(s);
flag=0;
for(int i=0;i<=len;i++)
{
if(flag) break;
for(int j=0;j<i;j++)
{
t[j]=s[j];
}
for(int j=i;j<len;j++)
{
t[j+1]=s[j];//注意留出位置i
}
for(char k='a';k<='z';k++)
{
t[i]=k;//枚举插入的字符
if(is())
{
printf("%s\n",t);
flag=1;
break;
}
}
}
if(!flag) printf("NA\n");
memset(s,0,sizeof(s));
memset(t,0,sizeof(t));
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: