本文共 398 字,大约阅读时间需要 1 分钟。
题目大意:
给一个字符串, 要求把它分割成若干个子串,使得每个子串都是回文串。问最少可以分割成多少个。
分析:
f[i]表示以i结尾的串最少可以分割的串数。
f[i] = min{ f[j]+1, 串[j,i]是回文串&&1<=j<=i }
代码:
#include#include #include #include #include #include using namespace std;typedef long long int64;const int INF = 0x3f3f3f3f;const int MAXN = 1010;char str[MAXN];int f[MAXN];bool isPalind(int l, int r){ while(l
转载地址:http://vvzni.baihongyu.com/