天池 在线编程 区分用户名(哈希)

文章目录

1. 题目

描述
给出一组用户名,如果有重复的用户名,则在用户名后添加数字区别,并返回修改后的数组。

样例 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"

https://tianchi.aliyun.com/oj/376506598349105305/389682099890885303

2. 解题

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阿明),一起加油、一起学习进步!
Michael阿明

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页