inline string patternString(string a, string b)
bool patternMatching(string pattern, string value) {
for(auto c:this->pattern)
if(sizeA ==0 && sizeB ==0) return value=="";
int cntB=value.length()/sizeB;
return patternString("",value.substr(0,cntB)) ==value;
int cntA=value.length()/sizeA;
return patternString(value.substr(0,cntA),"") ==value;
for(auto c:this->pattern)
int cntA=value.length()/sizeA;
for(int i=0; i<=cntA;i++)
int cntB=(value.length()-sizeA*i)/sizeB;
string a=value.substr(0,i);
string b =value.substr(i*startB,cntB);
// cout<<a<<" "<<b<<endl;
// cout<<patternString(a,b) <<endl;
if(patternString(a,b) == value) return true;