stafuc
BAN USER#define forless(i, s, e) for(int i = (s); i < (e); i++)
#define forto(i, s, e) for(int i = (s); i <= (e); i++)
using namespace std;
bool dfs(const string& str, int i, const string& patter, int j)
{
if(i == str.length() && j == patter.length())
{
return true;
}
if(j == patter.length())
{
return false;
}
// * after
if(j + 1 < patter.length() && patter[j + 1] == '*')
{
//not use patter[j]
if(dfs(str, i, patter, j + 2))
{
return true;
}
//use patter[j]
if(i < str.length() && str[i] == patter[j])
{
return dfs(str, i + 1, patter, j);
}
return false;
}
//not * after
else
{
if(i < str.length() && str[i] == patter[j])
{
return dfs(str, i + 1, patter, j + 1);
}
return false;
}
}
bool isMatch(const string& str, const string& patter)
{
return dfs(str, 0, patter, 0);
}
we are not calculating P(Red&Pop&BeforeOnFriday), we are calculating P(BeforeOnFriday|Red&Pop)
- stafuc September 01, 2015