今天的題目為115.Distinct Subsequences,今天的題目在要求計算出字串s中有多少個 不同的子序列等於字串t,而這裡的「子序列」是指可以從s中刪除一些字元而不改變剩下字元的順序所得到的字串。
以下是程式碼:
class Solution {
public int numDistinct(String s, String t) {
int m = s.length();
int n = t.length();
int[][] dp = new int[m + 1][n + 1];
for (int i = 0; i <= m; i++) {
dp[i][0] = 1;
}
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
if (s.charAt(i - 1) == t.charAt(j - 1)) {
dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];
} else {
dp[i][j] = dp[i - 1][j];
}
}
}
return dp[m][n];
}
}
今天的題目是我覺得這幾天來最難的,今天的讓我有一點混亂,也多次詢問AI之後才找到正確的答案。