[编程题] 回文串
给定一个字符串,问是否能通过添加一个字母将其变为回文串。
输入描述:
一行一个由小写字母构成的字符串,字符串长度小于等于10。
输出描述:
输出答案(YESNO).
输入例子:
coco
输出例子:
YES
#include<iostream> #include<string> using namespace std; bool f(string& s, int i) { int l = 0, r = s.size() - 1; if (l == i) l++; if (r == i) r--; while (l<r) { if (s[l] != s[r]) return false; l++; r--; if (l == i) l++; if (r == i) r--; } return true; } int main() { //string s="jnwbbwnjb"; string s; while (cin >> s) { int n = s.size(); if (n == 0 || n == 1) cout << "YES" << endl; else { bool flag = false; for (int i = -1; i<n; i++) { if (f(s, i)) { flag = true; break; } } cout << (flag ? "YES" : "NO") << endl; } } return 0; }