// has to be called in the end after finishing working with the library void DeinitTaucsInterface() { // release all objects for (int id = 0; id < (int)matrixArray.size(); id++) { ReleaseMatrix(id); } for (int fId = 0; fId < (int)factorArray.size(); ++fId) { ReleaseFactor(fId); } }
bool wordBreak(string strtomatch, unordered_set<string> &myset) { unsigned strlength = strtomatch.length(); BuildMatrix(&pmatrix,strlength,strlength); for(int i=0;i<strlength;++i){ for(int j=i;j<strlength;++j){ pmatrix[i][j] = false; } } for(unsigned i=0;i<strlength;++i){ for(unsigned j=i;j<strlength;++j){ string strdata; strdata.assign(strtomatch,i,j-i+1); if(myset.find(strdata)!=myset.end()){ pmatrix[i][j] = true; } } } for(int i=strlength-1;i>=0;--i){ bool isallfalse = true; for(int j = i;j<strlength;++j){ if(pmatrix[i][j]){ isallfalse = false; break; } } if(isallfalse&&(i-1>=0)){ for(int j = 0;j<strlength;++j){ pmatrix[j][i-1] = false; } } } bool ret = FindWord(strlength); ReleaseMatrix(&pmatrix,strtomatch.length()); return ret; }