刺激,,第一次打LeetCode周赛。
第一个题目就直接把题目描述翻译成代码来就好了
第二个题目文件夹重复命名实现,想着用双指针,,搞了半天没搞出来,脑子乱掉了。。(~ ̄(OO) ̄)ブ
这是其中一个大佬的题解,吃了饭再来看,饿死辽。
class Solution {
map<string,int> m;
vector<string> ans;
string s;
void fix(int x)
{
if(x>9)fix(x/10);
s+=x%10^'0';
}
public:
vector<string> getFolderNames(vector<string>& names) {
ans.clear();
for(auto t:names)if(m.count(t))
{
for(;;)
{
s=t;
s+='(';
fix(m[t]);
m[t]++;
s+=')';
if(!m.count(s))break;
}
m[s]=1;
ans.push_back(s);
}
else
{
m[t]=1;
ans.push_back(t);
}
return ans;
}
};
网友评论