Input
The first line contains number n (1 ≤ n ≤ 105). The following n lines contain the requests to the system. Each request is a non-empty line, and consists of not more than 32 characters, which are all lowercase Latin letters.Output
Print n lines, which are system responses to the requests: OK in case of successful registration, or a prompt with a new name, if the requested name is already taken.Examples Input
4 abacaba acaba abacaba acab Output OK OK abacaba1 OK Input 6 first first second second third third Output OK first1 OK second1 OK third1此题在做的过程中首先应当注意的第一个问题是不可以使用数组来做,因为数组统计的是一个字符,而这道题想要统计的是一个字符串,所以应当用map来做;第二个问题就是最好用cin来录入,因为这样就不用考虑字符串的长度了;第三个我在做这道题中发现每出现相同字符串计数的时候一定要放到输出的后面,不然会多计一次。
代码如下
#include"stdio.h" #include"map" #include"iostream" #include"string" using namespace std; int main() { int n; while(~scanf("%d",&n)) { map<string,int> m;//<想定义的,被定义的个数> string a; for(int i=0;i<n;i ++) { int sum=0; cin>>a; if(m[a] == 0) { printf("OK\n"); m[a]++;//记下字符串的个数 } else { cout<<a<<m[a]<<endl; m[a]++;//记下字符串的个数 } } } return 0; }