작성
·
197
0
#include <bits/stdc++.h>
using namespace std;
int main()
{
int tc;
string pattern;
cin>>tc;
cin>>pattern;
string front="";
string back="";
bool chk = false;
for(auto c: pattern){
if(c=='*') {chk=true;continue;}
if(!chk) front+=c;
else back+=c;
}
while(tc--){
string test;
cin>>test;
int pos1=0,tmp1;
vector<int> v1;
while((tmp1=(int)test.find(front,pos1))!=-1)
{
v1.push_back(tmp1);
pos1=tmp1+1;
}
int pos2=0,tmp2;
vector<int> v2;
while((tmp2=(int)test.find(back,pos2))!=-1)
{
v2.push_back(tmp2);
pos2=tmp2+1;
}
bool fin = false;
for(auto i : v1){
for(auto j : v2){
if(i+front.size()<=j) {cout<<"DA"<<'\n';fin=true;break;}
}
if(fin) break;
}
if(!fin) cout<<"NE"<<'\n';
}
}
답변 1
0
안녕하세요. 넷플릭스100님 ㅎㅎ
나름 잘 짜셨는데요. 제가 반례를 하나 드리죠.
1
a*b
bababababa
넷플릭스100님의 코드를 돌려보면 DA가 나오는데요.
맞는걸까요?
또 질문사항있으시면 언제든 말씀 부탁드립니다.
감사합니다.
강사 큰돌 올림.