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
true は p が s のすべてに一致する場合、それ以外は false

制約

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

例

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

lock icon提出時に隠しテスト+29件

challenge icon

発展問題

同じ表を使って、その直前の要素が1回以上繰り返されることを示す + にも対応できますか?

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

ケース1

ケース2

ケース3

入力

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

期待値

true