标签:长度 难度 char clr color 规划 pre 添加 strlen
1 Ab3bd
2
用动态规划来做此题,代码如下
1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 using namespace std; 5 6 char str[1005]; 7 int dp[1005][1005]; 8 9 int main(int argc, char const *argv[]) 10 { 11 int n; 12 scanf("%d",&n); 13 while(n--) { 14 scanf("%s",str); 15 memset(dp, 0, sizeof(dp)); 16 int len = strlen(str); 17 for(int l = 1; l < len; l++) { 18 for(int i = 0,j = l; i < len && j < len; i++,j++) { 19 if(str[i] == str[j]) { 20 dp[i][j] = dp[i+1][j-1]; 21 } 22 else { 23 dp[i][j] = min(dp[i+1][j],dp[i][j-1])+1; 24 } 25 } 26 } 27 printf("%d\n",dp[0][len-1]); 28 } 29 return 0; 30 }
dp[i][j]表示从i到j所需要添加的最小字符数。由长度为1的串一直推导整个字符串。
标签:长度 难度 char clr color 规划 pre 添加 strlen
原文地址:http://www.cnblogs.com/jasonJie/p/6092875.html