codeforces 4C

题意:

每当一个新的用户想要注册账号的时候,他会把他想要注册的用户名告诉系统。如果这个系统里之前没有出现过这个用户名,那么这个用户名就会被导入数据库,从而注册成功。但是,如果这个用户名在数据库中已经存在,系统会自动帮助用户建立一个新的用户名,系统将在用户名的后面从1开始添加数字,一旦发现用户名没有注册过,就会帮助用户直接注册该账号(也就是如果用户想注册name这个用户名,但是系统已经有了,于是系统会自动查找name1是否注册,如果name1也注册了,那么检查name2是否注册,直到找到一个没有用过的用户名,帮用户自动注册)。

Input

输入第一行是一个正整数n,表示有n个用户想要注册。接下来n行,每行一个非空字符串(只由小写字母组成,长度不超过32)表示每个用户想要注册的用户名。1<=n<=10^5

Output

输出有n行,每行一个答案表示对应的用户注册的结果。如果直接注册成功,就输出OK,否则就输出系统帮助用户注册的用户名。

Input

4
abacaba
acaba
abacaba
acab

Output

OK
OK
abacaba1
OK

 

这个题很简单,对萌新很友好,就是利用STL中的map,每次输入一个name,就在map中查找,如果没找到就把name扔进去,否则利用map的映射输出新的用户名。

代码如下:

#include<cstdio>
#include<map>
#include<string>
#include<string.h>
#include<cstring>
#include<iostream>
using namespace std;
map<string,int>mp;
string name;
int n;
int main()
{
	cin >> n;
	map<string, int>::iterator j;
	for (int i = 1; i <= n; i++) {
		cin >> name;
		j = mp.find(name);
		if (j == mp.end()) {
			cout << "OK" << endl;
			mp[name] = 0;
		}
		else {
			mp[name]++;
			cout << name << mp[name] << endl;
		}
	}
	return 0;
}

 

全部评论

相关推荐

Hello_WordN:咱就是说,除了生命其他都是小事,希望面试官平安,希望各位平时也多注意安全
点赞 评论 收藏
分享
沉淀一会:1.同学你面试评价不错,概率很大,请耐心等待; 2.你的排名比较靠前,不要担心,耐心等待; 3.问题不大,正在审批,不要着急签其他公司,等等我们! 4.预计9月中下旬,安心过节; 5.下周会有结果,请耐心等待下; 6.可能国庆节前后,一有结果我马上通知你; 7.预计10月中旬,再坚持一下; 8.正在走流程,就这两天了; 9.同学,结果我也不知道,你如果查到了也告诉我一声; 10.同学你出线不明朗,建议签其他公司保底! 11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务