ostream& operator<<(ostream& o, const vector>& v)
}return dp[s2.length()][s1.length()];
}
通過上面那個列子,其實就這個問題就很容易想了。
首先就是初值的設定,兩個字串都按上題中的包含萬用字元的字串設定初值的方法,根據是否為星號和上乙個的狀態。
其次就是遞推式,它不用變,只是需要同時判斷兩個字串中是否都包含萬用字元。
直接上**:
public
static
boolean
ismatchbyboth(string s1, string s2) else }}
return dp[s2.length()][s1.length()];
}
這道題是把*的概念變了,它代表匹配星號之前元素的0個或多個。即 c* 帶便0個或者多個c。
所以具體**和思路寫到**注釋裡了。大家可以對照上面的題看看。
public
class
solution else }}
return dp[p.length()][s.length()];
}boolean match(char c, char p)
}
帶萬用字元的字串匹配 動態規劃
描述 萬用字元是一類鍵盤字元,當我們不知道真正字元或者不想鍵入完整名字時,常常使用萬用字元代替乙個或多個真正字元。萬用字元有問號 和星號 等,其中,可以代替乙個字元,而 可以代替零個或多個字元。你的任務是,給出乙個帶有萬用字元的字串和乙個不帶萬用字元的字串,判斷他們是否能夠匹配。例如,1?456 可...
帶有萬用字元的字串匹配演算法 C C
日前某君給我出了這樣一道題目 兩個字串,乙個是普通字串,另乙個含有 和?萬用字元,代表零個到多個任意字元,代表乙個任意字元,萬用字元可能多次出現。寫乙個演算法,比較兩個字串是否相等。我花了四個小時寫出兩種演算法來解決這個問題,簡單地測試了一下,好使!方法一,從無萬用字元到有?再到有 逐步推進分析 c...
萬用字元匹配字串
問題 實現支援?和 兩個萬用字元的字串匹配函式。implement wildcard pattern matching with support for and matches any single character.matches any sequence of characters inclu...