0
点赞
收藏
分享

微信扫一扫

A. Mr. Kitayuta's Gift(暴力求加一个字符是否构成回文字符)

寒羽鹿 2023-04-21 阅读 20


A. Mr. Kitayuta's Gift



time limit per test



memory limit per test



input



output



s consisting of lowercase English letters. You are asked to insert exactly one lowercase English letter into s to make it a palindrome. A palindrome is a string that reads the same forward and backward. For example, "noon", "testset" and "a" are all palindromes, while "test" and "kitayuta" are not.

s, possibly to the beginning or the end of s. You have to insert a letter even if the given string is already a palindrome.

s so that the resulting string will be a palindrome, print the string after the insertion. Otherwise, print "NA" (without quotes, case-sensitive). In case there is more than one palindrome that can be obtained, you are allowed to print any of them.



Input



s (1 ≤ |s| ≤ 10). Each character in s



Output



s into a palindrome by inserting one lowercase English letter, print the resulting string in a single line. Otherwise, print "NA" (without quotes, case-sensitive). In case there is more than one solution, any of them will be accepted.



Sample test(s)



input



revive



output



reviver



input



ee



output



eye



input



kitayuta



output



NA



Note



r' to the end of "revive" to obtain a palindrome "reviver".

eve" will also be accepted.

kitayuta" into a palindrome by just inserting one letter.



#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

using namespace std;

char a[101];
char b[101];
int k;

int findx()
{
    for(int v=0;v<k;v++)
    {
        if(b[v]!=b[k-1-v])
        {
            return 0;
        }
    }
    return 1;
}

int main()
{
    while(scanf("%s",a)!=EOF)
    {
        int l = strlen(a);
        int flag = 0;
        for(int i=0;i<=l;i++)
        {
            for(int j='a';j<='z';j++)
            {
                k = 0;
                int pi = 0;
                while(pi<i)
                {
                    b[k++] = a[pi];
                    pi++;
                }
                b[k++] = j;
                while(pi<l)
                {
                    b[k++] = a[pi];
                    pi++;
                }
                //wwprintf("************* %s\n",b);
                if(findx() == 1)
                {
                    for(int p=0;p<k;p++)
                    {
                        printf("%c",b[p]);
                    }
                    printf("\n");
                    flag = 1;
                    break;
                }
            }
            if(flag == 1)
            {
                break;
            }
        }
        if(flag == 0)
        {
            printf("NA\n");
        }

    }
    return 0;
}






举报

相关推荐

0 条评论