字串str1到str2的代價
阿新 • • 發佈:2019-01-13
class MinCost { public: int findMinCost(string A, int n, string B, int m, int c0, int c1, int c2) { // write code here //dp[i][j] 表示A[0..i-1] 轉換到 B[0..j-1] 的最小變換 // c2替換代價 c0 add // c1 delete vector<vector<int> > dp(n+1,vector<int>(m+1)); dp[0][0]=0; for(int i=1;i<m+1;++i){ dp[0][i]=i*c0; } for(int i=1;i<n+1;++i){ dp[i][0]=i*c1; } for(int i=1;i<n+1;++i){ for(int j=1;j<m+1;++j){ if(A[i-1]==B[j-1]){ int temp=min(dp[i-1][j]+c1,dp[i][j-1]+c0); dp[i][j]=min(temp,dp[i-1][j-1]); }else{ int temp=min(dp[i-1][j]+c1,dp[i][j-1]+c0); dp[i][j]=min(temp,dp[i-1][j-1]+c2); } } } return dp[n][m]; } };