lintcode 区分用户名

描述

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

样例

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

思路

使用map来记录每一个用户名出现的次数

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution {
public:
/**
* @param names: a string array
* @return: the string array
*/
vector<string> DistinguishUsername(vector<string> &names) {
// Write your code here
vector<string> res;
unordered_map<string, int> temp;
for(int i = 0; i < names.size(); i++){
if (temp[names[i]] == 0){
temp[names[i]]++;
res.push_back(names[i]);
}
else{
string new_name = names[i] + to_string(temp[names[i]]);
temp[names[i]]++;
res.push_back(new_name);
}
}
return res;
}
};
-------------end of file thanks for reading-------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值