题目链接:http://www.patest.cn/contests/mooc-ds/09-2
题目分析:这是一道考察哈希散列表的一道题。题目总体来说是比较简单的,而且又是中文的,相信大家都能看懂。
特别说明:
QQ号是10位的,而long型整数最大能表示到±2*10^9,也就是能表示到2开头的QQ号。所以我们这里用字符串类型表示QQ号。
代码分析:
老师是比较宽容的,我这里只用了C++的map而没有自己写。时间和空间非常恐怖。不过好在AC了,就不纠结了……
1 #include <iostream> 2 #include <map> 3 4 using namespace std; 5 6 int main() 7 { 8 int n; 9 cin >> n; 10 map<string, string> myMap; 11 for(int i=0; i<n; i++) 12 { 13 char a; 14 string b; 15 string c; 16 cin >> a >> b >> c; 17 if(a == 'L') 18 { 19 if(myMap.find(b) == myMap.end()) 20 cout << "ERROR: Not Exist" << endl; 21 else if(myMap[b] != c) 22 cout << "ERROR: Wrong PW" << endl; 23 else 24 cout << "Login: OK" << endl; 25 } 26 else if(a == 'N') 27 { 28 if(myMap.find(b) != myMap.end()) 29 cout << "ERROR: Exist" << endl; 30 else 31 { 32 cout << "New: OK" << endl; 33 myMap[b] = c; 34 } 35 } 36 } 37 return 0; 38 }
AC成果: