712. Minimum ASCII Delete Sum for Two Strings

来源:互联网 发布:微淘直播和淘宝直播 编辑:程序博客网 时间:2024/06/03 01:42

dp问题,写的好费劲,太久没有写dp了

class Solution {public:    int minimumDeleteSum(string s1, string s2) {        int row=s1.size()+1;        int col=s2.size()+1;        s1 = " "+s1;        s2 = " "+s2;        vector<int> temp(col, 0);        vector<vector<int>> dp(row, temp);        for(int i=0;i<row;i++)        {            for(int j=0;j<col;j++)            {                if(s1[i]==s2[j])                {                    if(i-1>=0&&j-1>=0)                        dp[i][j] = dp[i-1][j-1];                    else                        dp[i][j] = 0;                }                else                {                    int temp1;                    int temp2;                    if(j-1>=0&&i-1>=0)                    {                        temp1 = dp[i][j-1]+s2[j];                        temp2 = dp[i-1][j]+s1[i];                        dp[i][j] = temp1>temp2?temp2:temp1;                    }                    else if(j-1<0&&i-1>=0)                        dp[i][j] = dp[i-1][j] + s1[i];                    else if(j-1>=0&&i-1<0)                        dp[i][j] = dp[i][j-1] + s2[j];                    else                        dp[i][j] = 0;                }                //cout<<i<<" "<<j<<" "<<dp[i][j]<<endl;            }        }        return dp[row-1][col-1];    }};
阅读全文
0 0
原创粉丝点击