Codeforces 505A Mr. Kitayuta's Gift 题解

来源:互联网 发布:家庭网络布线工 编辑:程序博客网 时间:2024/06/05 07:44

题意

给你一个字符串,要求必须添加一个字符,问是否可能形成回文串,如果可能,输出任意一个,如果不可能,输出”NA”

思路

由于题目数据范围不大,我们可以考虑在每一位添加字符,然后去判断,不过为了满足可能成立的回文串条件,新添的字符一定要跟其对称位相等,如果它的对称位为它自己,那干脆就让它是’a’,判断出有回文串就可以输出然后结束了,如果所有都不成立,就是不可能。

代码

#include <cstdio>#include <cstring>char s[20],t[20];bool test(int x,int l){    for(int i=0;i<x;i++)        t[i]=s[i];    for(int i=x;i<l;i++)        t[i+1]=s[i];    t[x]='a';    t[x]=t[l-x];    for(int i=0;i<=l;i++)        if(t[i]!=t[l-i])            return false;    return true;}int main(){    int l,f=0;    scanf("%s",s);    l=strlen(s);    for(int i=0;i<=l;i++)    {        if(test(i,l)==true)        {            printf("%s\n",t);            f=1;            break;        }    }    if(f==0)        printf("NA\n");    return 0;}
0 0
原创粉丝点击