// 求a b 两个字符串的编辑距离 // a b // 0 1 // a 0 // b 1 // c 2 int calTwoStr(string a, string b){ int aSize = a.length(); int bSize = b.length(); int dp[bSize][aSize]; for(int i=0; i<aSize; i++){ dp[0][i] = i; } for(int j =0; j<bSize; j++){ dp[j][0] = j; } int tmp1, tmp2; for(int i=1; i<bSize; i++){ for(int j=1; j<aSize; j++){ tmp1 = min(dp[i-1][j] + 1, dp[i][j-1] + 1); if(a[i] == b[j]){ tmp2 = dp[i-1][j-1]; }else{ tmp2 = dp[i-1][j-1] + 1; } dp[i][j] = min(tmp1, tmp2); } } return dp[bSize-1][aSize-1]; }