题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1563
题目大意:字符串在之前出现过一次就喊一次“Bayan”,输出喊的次数。
思路:
可以用map实现,或者简单的字符串匹配,开个数组就好
代码:
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
char str[1010][35];
int main()
{
int n, m = 0;
char ch[35];
memset(str,'\0',sizeof(str));
cin>>n;
getchar();
int ans = 0;
while(n)
{
bool flag = false;
gets(ch);
for(int i = 1; i <= m; i++)
{
if(strcmp(ch, str[i]) == 0)
{
flag = true;
ans++;
break;
}
}
if(!flag)
{
strcpy(str[++m], ch);
}
n--;
}
cout<<ans<<endl;
return 0;
}
#include <cstdio>
#include <map>
#include <string>
#include <iostream>
using namespace std;
map<string , int>m;
int main()
{
int n;
string s;
while(scanf("%d", &n) == 1)
{
getchar();
int ans = 0;
m.clear();
for(int i = 0; i < n; i++)
{
getline(cin, s);
if(m.count(s))ans++;
m[s]++;
}
cout<<ans<<endl;
}
return 0;
}