申请帐号的无奈
题目介绍:有一帐号申请系统,对于申请帐号的用户名有以下处理,当用户未注册时,系统记录下该用户的申请帐号,当同名用户在进行申请时,因为系统内存在该用户名,则在其姓名后加注出他之外已有的该姓名的用户的个数,存入系统。用户数量n,1<=n<=100000;
输入,有多组测试数据,首行输入测试数据的个数n,以下n行输入申请帐号的用户名name。
输出,当未重名时输出OK,当有同名的话输出姓名和已有的同名人的个数。
sample
input
8
zhang
wang
zhang
zhang
li
output
OK
OK
zhang1
zhang2
OK
由于刚刚学起算法,对于算法还不能灵活运用,便用笨拙的方法,不出所料,提交结果TLE还有RE;
本人的源代码如下
#include<iostream>
#include<string>
using namespace std;
int main()
{
int n,i,j,l,sum,maxi;
string str[100000];
cin>>n>>str[0];
cout<<"OK"<<endl;//第一个注册的一定不重复;
for(i=1;i<n;i++)//控制输入的数量;
{
cin>>str[i];
for(j=0,sum=0,maxi=0;j<i;j++)//循环查找有没有同名的,若有存在maxi里;
{
if(str[i]==str[j])maxi++;
else sum++;
}
if(maxi!=0)cout<<str[i]<<maxi<<endl;
if(sum==i)cout<<"OK"<<endl;
}
return 0;
}
浙公网安备 33010602011771号