题解——添加回文串

来源:互联网 发布:unity3d 动漫人物模型 编辑:程序博客网 时间:2024/06/06 02:05

题目:

对于一个字符串,我们想通过添加字符的方式使得新的字符串整体变成回文串,但是只能在原串的结尾添加字符,请返回在结尾添加的最短字符串。

给定原字符串A及它的长度n,请返回添加的字符串。保证原串不是回文串。

测试样例:
"ab",2
返回:"a"

/*我的QQ:825580813(欢迎来一起讨论,刷题,PK)。*/#include <iostream>#include <algorithm>#include <cstdlib>#include <ctime>#include <string>using namespace std;bool isPalindrome (string str){for( int i = 0, j = str.length() - 1; i < j; ++i, --j){if( str[i] != str[j] ){return false;}}return true;}string addToPalindrome (string A, int n){for( int i = 0; i < n; ++i ){if( A[i] == A[n - 1] ){if( isPalindrome(A.substr(i, n - i)) ){string str = A.substr (0, i);reverse (str.begin (), str.end ());return str;}}}return "";}int main (){while( true ){string str;cin >> str;cout << addToPalindrome (str, str.length ()) << endl << endl;}return 0;}


0 0
原创粉丝点击