내용은 링크로 대체한다.
함께보기
#include <bits/stdc++.h>
using namespace std;
char s[101], p[101];
int slen, plen;
int dp[101][101];
int match(int i, int j){
if(i >= plen) return j == slen;
int& r = dp[i][j];
if(r != -1) return r;
if(p[i] == '*'){
return r = (match(i+1, j) == 1 || match(i, j+1) == 1);
}
if(p[i] == s[j]) return r = match(i+1, j+1);
return r = false;
}
int main(){
int n;
scanf("%s %d ", p, &n);
plen = strlen(p);
while(n--){
memset(dp, -1, sizeof(dp));
scanf("%s ", s);
slen = strlen(s);
if( match(0, 0) == 1 ) puts(s);
}
return 0;
}
댓글 없음:
댓글 쓰기