用官方给的思路,写了一种递归的算法,字符串长了会超时
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define Length 1000
int str_dp(int i, int j, char* str1, char* str2) {
if (str1[i] == '\0' || str2[j] == '\0') {
if (str1[i] == '\0') {
return strlen(str2) - (j);
}
else {
return strlen(str1) - (i);
}
}
else if (str1[i] == str2[j]) {
return str_dp(i + 1, j + 1, str1, str2) + 1;
}
else {
return max(str_dp(i, j + 1, str1, str2), str_dp(i, j + 1, str1, str2))+1;
}
}
int main() {
char* str1 = "acbda";
char* str2 = "abwxyz";
int count = 0;
count = str_dp(0, 0, str1, str2);
printf("%d", count);
return 0;
}