zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    poj 2892 && 3468
    hdu 2444
    反素数
    poj 2406 && 1961
    Java定时器Timer的使用
    Linux环境下如何生成core文件
    Java异步CompletableFuture的使用
    Java中线程池的使用
    Linux系统添加应用服务进程的守护进程
    C++通过Webbrowser调用JavaScript
  • 原文地址:https://www.cnblogs.com/qianr/p/13272635.html
Copyright © 2011-2022 走看看