```CPP
#include <bits/stdc++.h>
using namespace std;
int dp[105][105], ans[105], n;
string A, B;
int main() {
while(cin >> A >> B) {
n = A.size();
A = " " + A;
B = " " + B;
memset(dp, 127, sizeof (dp));
for (int i = 1; i <= n; i++) dp[i][i] = 1;
for (int len = 1; len <= n; len++) {
for (int L = 1; L + len - 1 <= n; L++) {
int R = L + len - 1;
if(B[L] == B[R]) dp[L][R] = min(dp[L + 1][R], dp[L][R - 1]);
else
for (int k = L; k < R; k++) {
dp[L][R] = min(dp[L][R], dp[L][k] + dp[k + 1][R]);
}
}
}
for(int i = 1; i <= n; i++) ans[i] = dp[1][i];
for (int i = 1; i <= n; i++) {
if(A[i] == B[i]) ans[i] = min(ans[i], ans[i - 1]);
for (int k = 1; k < i; k++) {
ans[i] = min(ans[i], ans[k] + dp[k + 1][i]);
}
}
cout << ans[n];
}
}
为啥我这过不了