问题标题: 酷町堂:5260 练习册

0
0
已解决
汪宇航
汪宇航
新手启示者
新手启示者

新学期,小红学买了n套练习册,每套练习册都有两本,且书名是相同的,不同套练习册书名不同。平时,这2n本练习册都放在书架上。
有一天,小红带了一本练习册去上学。于是书架上还剩2n-1本练习册。已知剩下的这些练习册,问:小红带走的练习册的书名是什么?

输入描述 Input Description

输入的第一行是一个整数n(1≤n≤100)。
接下来共2n-1行,每行是一个由小写英文字母和数字组成的长度不超过100的字符串,表示书架上的一本练习册的名字。

输出描述 Output Description

输出一行,是一个字符串,表示小红带走的练习册。

样例输入 Sample Input

样例输入1: 2 chinese math math 样例输入2: 3 math1 english math2 english math1

样例输出 Sample Output

样例输出1: chinese 样例输出2: math2

#include <bits/stdc++.h>

using namespace std;

int b[1000]={};

int main(){

int n;

string a[10000];

cin>>n;

getchar();

for(int i=0;i<n;i++){

getline(cin,a[i]);

b[int(a[i])]++;

}

for(int i=0;i<=100;i++){

for(int j=0;j<n;j++){

if(b[i]==1){

cout<<a[j];

return 0;

}

}

}

}

怎么做????

跪拜巨佬!!!!!!


0
已采纳
陈正朔
陈正朔
初级光能
初级光能

首先,输入有2n-1行,你这只输入了n行

还有,把字符串转int型是什么?

这题最好用map做

定义

map<string,int>m;//要加头文件#include<map>

输入并计数

for(int i=1;i<=n*2-1;i++){
        cin>>s[i];
        m[s[i]]++;//m相当于下标为字符串,储存的值为int的数组
}

统计并输出

for(int i=1;i<=n*2-1;i++){
        if(m[s[i]]==1){ //只出现过一次
            cout<<s[i];
            break;
        }
    }

 

我要回答