1 /* 2 水题:vector容器实现插入操作,暴力进行判断是否为回文串 3 */ 4 #include <cstdio> 5 #include <iostream> 6 #include <algorithm> 7 #include <cstring> 8 #include <string> 9 #include <vector> 10 using namespace std; 11 12 const int MAXN = 1e4 + 10; 13 const int INF = 0x3f3f3f3f; 14 vector<char> s; 15 char ss[11]; 16 17 bool check(void) 18 { 19 for (int i=0, j=s.size ()-1; i<j; ++i, --j) 20 if (s[i] != s[j]) return false; 21 return true; 22 } 23 24 int main(void) //Codeforces Round #286 (Div. 2) A Mr. Kitayuta's Gift 25 { 26 //freopen ("A.in", "r", stdin); 27 28 while (cin >> ss) 29 { 30 s.clear (); bool flag = false; 31 for (int i=0; ss[i]; ++i) s.push_back (ss[i]); 32 for (int i=0; i<=s.size (); ++i) 33 { 34 for (int j=0; j<=26; ++j) 35 { 36 char ch = 'a' + j; 37 s.insert (s.begin () + i, ch); 38 if (check ()) 39 { 40 flag = true; 41 for (int i=0; i<s.size (); ++i) 42 cout << s[i]; 43 cout << endl; break; 44 } 45 else s.erase (s.begin () + i); 46 } 47 if (flag) break; 48 } 49 50 if (!flag) cout << "NA" << endl; 51 } 52 53 return 0; 54 }
1 #include <cstdio> 2 #include <iostream> 3 #include <algorithm> 4 #include <cstring> 5 #include <string> 6 #include <vector> 7 using namespace std; 8 9 const int MAXN = 1e4 + 10; 10 const int INF = 0x3f3f3f3f; 11 12 bool ok(string x) 13 { 14 string ss = x; 15 reverse (ss.begin (), ss.end ()); 16 return (ss == x); 17 } 18 19 int main(void) //Codeforces Round #286 (Div. 2) A Mr. Kitayuta's Gift 20 { 21 //freopen ("A.in", "r", stdin); 22 23 string s; 24 cin >> s; 25 26 int len = s.size (); 27 for (int i=0; i<=len; ++i) 28 { 29 for (char c='a'; c<='z'; ++c) 30 { 31 string x; 32 for (int j=0; j<i; ++j) x += s[j]; 33 x += c; 34 for (int j=i; j<len; ++j) x += s[j]; 35 if (ok (x)) {cout << x << endl; return 0;} 36 } 37 } 38 cout << "NA" << endl; 39 40 return 0; 41 }