• CF4C


     这道题是要求我们模拟一个注册系统,判断每个要注册的名字是否已被注册过,若未被注册则进行注册,否则注册新名字。

    这道题的算法标签里显示的是要使用哈希,然而哈希函数和这里我们使用的映射本质上都是对复杂内容进行表示,所以哈希就不如映射方便了。

    使用映射,首先我们需要使用STL中的<map>库和<string>库,并定义一个从string类型到int类型的map映射a。a中每个字符串对应的值会被自动初始化为0。

    接下来我们要定义一个string类型的变量s,然后不断进行读入。如果s指向的int值为0,说明该用户名未被注册过,输出“OK”,并将a[s]赋值为1。如果已经注册过,则需要在输出s的后面输出a[s]的值(该用户名是第几次被使用)。

    下面是完整代码:

     1 #include<iostream> 
     2 #include<map>
     3 using namespace std;
     4 int n,i;
     5 map <string,int> a;
     6 string s;
     7 int main(){
     8     cin>>n;
     9     for(i=1;i<=n;i++){
    10         cin>>s;
    11         if(a[s]==0){//未被注册过 
    12             cout<<"OK"<<endl;
    13             a[s]=1;
    14         }else{//已被注册过 
    15             cout<<s<<a[s]<<endl;
    16             a[s]++;
    17         }
    18     }
    19     return 0;
    20 }
  • 相关阅读:
    asp Excel导入数据库
    Excel导出函数
    asp精简checkbox全选代码
    一个操作读写已存在excel 文件的例子
    asp中实现网络打印功能
    asp操作excel 技术总结
    asp初学者常用的代码
    asp连接各种其他数据库 的方法
    asp得到地址栏里"?"以后的字串
    asp判断今天是星期几
  • 原文地址:https://www.cnblogs.com/qianr/p/13272635.html
Copyright © 2020-2023  润新知