Menu
CoddyTech

Regular Expression Matching

むずかしい動的計画法再帰python iconjava iconcpp iconc iconjs icon+10

文字列 s とパターン p が与えられます。パターンでは、文字は同じ文字に一致し、ドット . は任意の1文字に一致します。また、アスタリスク * は、その直前にある文字またはドットの要素が0個以上続くことを意味します。パターンが s 全体に一致する場合は true を、そうでない場合は false を返してください。

関数

isMatch(s: string, p: string) → boolean
sstring
照合する文字列(小文字のみ)
pstring
文字、ドット、星のパターン
戻り値boolean
p が s のすべてに一致する場合は true、そうでなければ false

制約

  • 1 ≤ s.length ≤ 1000
  • 1 ≤ p.length ≤ 1000
  • sには小文字の英字のみが含まれています。
  • pには小文字の英字、.、*のみが含まれます。
  • すべての * は文字または . の後に続くため、p が * で始まることはなく、アスタリスクが2つ連続することもありません。

例

入力
s = "moon"p = "mo*n"
出力
true
説明
o* は 2 つの o を両方とも取るので、m、o*、n で moon と正確につづれます。
challenge icon

発展問題

同じ表で、+にも対応できますか?これは、その前の要素が1つ以上繰り返されることを意味します。

コードをリセット
def isMatch(s, p):
    # ここにコードを書いてください

テスト #1

テスト #2

テスト #3

引数

s = "moon"
p = "mo*n"

期待される出力

true