因爲可能會出現以下情況:
"mississippi"
"mis*is*p*."
mississ
mis*is*
符合
mississi
mis*is*
符合
所以,遞推公式是
int dp[slen+1][plen+1]
if (p[j-1] == '.' || s[i-1] == p[j-1]) dp[i][j] = dp[i-1][j-1];
if (p[j-1] == '*')
{
dp[i][j] = dp[i][j-1] || dp[i][j-2];
if (p[j-2] == '.' || s[i-1] == p[j-2]) dp[i][j] = dp[i][j] || dp[i-1][j];
}
相比較而言,44題就是真正的起飛了