#include <string.h> #include <stdlib.h> int ishuiwen(char *p) { int i = strlen(p); for(int j=0;j<=i/2;j++) { if(p[j] !=p[i-j-1]) { return 0; } } return 1; } char * getSubString(char *p, int m, int slen) { char *buf = new char[strlen(p) + 1]; int c...
你可编一个先在字符串中找2个回文的和3个回文的,记录下位置,在其基础上找4个和5个回文的……直至找不到,其前面的就是最大的。或先找500个回文的,找不到找(其一半)250个……;找到了找750个的……;这是折半法。
手写代码:求一个字符串最长回文子串 参考答案 参考回答: int LongestPalindromicSubstring(string & a) { int len = a.length(); vector<vector<int>>dp(len, vector<int>(len, 0)); for (int i = 0; i < len; i++) { dp[i][i] = 1; } int max_len = 1; int start_index = 0; ...