
描述 给出一组用户名,如果有重复的用户名,则在用户名后添加数字区别,并返回修改后的数组。
样例 1:
输入:["aa", "bb", "cc", "bb", "aa", "aa", "aa"]
输出:["aa","bb","cc","bb1","aa1","aa2","aa3"]
解释:
"bb"第二次出现输出为"bb1"
"aa"第二次出现输出为"aa1"
"aa"第三次出现输出为"aa2"
"aa"第四次出现输出为"aa3"
样例 2:
输入:[aa, bb, cc, aa]
输出:[aa, bb, cc, aa1]
解释:"aa"第二次出现输出为"aa1"class Solution {
public:
/**
* @param names: a string array
* @return: the string array
*/
vector<string> DistinguishUsername(vector<string> &names) {
// Write your code here
vector<string> ans;
unordered_map<string, int> name_idx;
for(auto& n : names)
{
if(name_idx.find(n) == name_idx.end())
{
name_idx[n] = 0;
ans.push_back(n);
}
else
{
name_idx[n]++;
ans.push_back(n+to_string(name_idx[n]));
}
}
return ans;
}
};我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!