当前位置: 首页> 健康> 知识 > 厦门优秀的网站设计_宣传手册内容模板_爱站网关键词挖掘机_百度app下载安装官方免费下载

厦门优秀的网站设计_宣传手册内容模板_爱站网关键词挖掘机_百度app下载安装官方免费下载

时间:2025/7/10 20:24:17来源:https://blog.csdn.net/2403_88254028/article/details/147619360 浏览次数:0次
厦门优秀的网站设计_宣传手册内容模板_爱站网关键词挖掘机_百度app下载安装官方免费下载

 解题思路:因为这道题在每次输入一个字符串后,都需要进行一次查找以判断是否需要按照规则生成新的用户名,故这道题使用STL容器map进行哈希是最合适的(map的查找时间复杂度为log n),在题目描述中,如果用户名已经被注册,那我们必须找到一个合法的正整数i来产生新用户名,故我们可开一个vector记录字符串重复出现的次数,在字符串重复出现的情况下,我们输出字符串再输入vector记录的此字符串出现的次数即可。

代码实现: 

#include<bits/stdc++.h>
using namespace std;
int main()
{int n;cin >> n;vector<int>num(100001);因为n最大为10的5次方,我们开成这个数即可。map<string,int>name;//定义一个map,用于存储字符串信息for(int i=0;i<n;i++){string str;cin >> str;//完成字符串的输入auto iter=name.find(str);//查找是否这个字符串在之前出现过,返回一个迭代器if(iter==name.end())//如果相等说明字符串未出现过,属于合法条件{name[str]=i;//创建一个键值对,map中有了此字符串的信息,i可以理解成它是第几次输入出现的字符串cout << "OK" << endl;//因为字符串之前未出现过,那么直接输出"OK"即可}else{int s=iter->second;//迭代器解引用得到的是一个pair类型,我们用->second访问字符串信息num[s]++;//记录这个字符串出现的次数cout << str << num[s] << endl;//输出按照规则生成的新用户名} }
}

 

 

关键字:厦门优秀的网站设计_宣传手册内容模板_爱站网关键词挖掘机_百度app下载安装官方免费下载

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: