Menu
CoddyTech

Regular Expression Matching

문자열 s와 패턴 p가 주어집니다. 패턴에서 문자는 같은 문자와 일치하고, 점 .은 임의의 문자 하나와 일치하며, 별표 *는 바로 앞에 있는 요소(문자 또는 점)가 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

후속 질문

같은 표에서 +와 그 앞 요소의 복사본을 하나 이상 지원할 수도 있나요?

코드 초기화
def isMatch(s, p):
    # 여기에 코드를 작성하세요
테스트 케이스

케이스 1

케이스 2

케이스 3

입력

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

기대값

true