Leetcode 903

题目大意: 求符合DI字符串的序列的个数

代码:
class Solution {
public:
    int numPermsDISequence(string S) {
        int res =0, n = S.size(),M=1e9+7;
        vector<vector<int>> dp(n+1,vector<int>(n+1));
        dp[0][0] = 1;
        for(int i=1;i<=n;i++){
            for(int j=0;j<=i;j++){
                if(S[i-1]=='D'){
                    for(int k=j;k<=i-1;k++){
                        dp[i][j] = dp[i][j] + dp[i-1][k];
                        dp[i][j] %= M;
                    }
                }else{
                    for(int k =0;k<=j-1;k++ ){
                        dp[i][j] = dp[i][j] + dp[i-1][k];
                        dp[i][j] %=M;
                    }
                }
            }
        }
        for(int i=0;i<=n;i++){
            res = res + dp[n][i];
            res%=M;
        }
        return res;
    }
};