一、自己写的。。时间17%,空间100%,难道这就是set去重的结果?
set<string> res; vector<string> temp; vector<bool> ok; void back(string s) { for (int i = 0; i < temp.size(); i++) { if (ok[i]) { ok[i] = false; s += temp[i]; res.insert(s); back(s); ok[i] = true; s.pop_back(); } } } int numTilePossibilities(string tiles) { for (int i = 0; i < tiles.size(); i++) { temp.push_back(tiles.substr(i, 1)); } for (int i = 0; i < tiles.size(); i++) ok.push_back(true); string s=""; back(s); return res.size(); }
二、题解
好像没有什么特别好的算法。。算了,明天看一下字典树是啥吧。。