一个简单的通过next_permutation来进行字符串查找的函数,很遗憾,超时
vector<int> findSubstring(string s, vector<string>& words) {
vector<int> order;
vector<int> ret;
for(int i=0;i<words.size();i++)order.push_back(i);
string _s = s;
do{
string subStr = "";
_s = s;
for(int i=0;i<order.size();i++)subStr += words[order[i]];
int tmp = _s.find(subStr);
int pre = 0;
while(tmp!=-1){
ret.push_back(pre+tmp);
tmp++;
pre+=tmp;
while(tmp--)_s.erase(_s.begin());
tmp = _s.find(subStr);
}
}while(next_permutation(order.begin(),order.end()));
sort(ret.begin(),ret.end());
vector<int>::iterator iter = unique(ret.begin(),ret.end());
ret.erase(iter,ret.end());
}