C++ 数组:判断集合是否相等
这道题其实是要求利用数组解决。不过考虑到用set(集合)解题更加简便,因此,下面做法是使用了容器set。
【题目描述】
给定两个集合A和B,判断他们是否相等。(集合元素可能需要去重) 。
如果两个集合相等,则输出"yes",否则输出"no"
【输入格式】
两行分别表示集合 A 和 B ,每一行先输入一个数 n 表示集合的大小,接下来输入 n 个数表示集合的元素
【输出格式】
按要求输出 "yes" 或 "no" (不带引号)
【输入样例】
4 1 2 3 4
4 4 3 2 1
【输出样例】
yes
【样例解释】
第一个集合里不重复的元素为{1,2,3,4},第二个集合也为{1,2,3,4},故两个集合相等
#include<iostream>
#include<set> //使用set需要引入头文件
using namespace std;
int main()
{
set<int> a; //int类型的集合a,b
set<int> b;
int n1,n2;//集合大小
//输入要比较的集合
cin>>n1;
for(int i = 0; i < n1; i++)
{
int k;
cin>>k;
a.insert(k);//向集合a中插入整数k
}
cin>>n2;
for(int i = 0; i < n2; i++)
{
int k;
cin>>k;
b.insert(k);
}
//判断两个集合是否相等
if(a==b) cout<<"yes"<<endl;
else cout<<"no"<<endl;
return 0;
}
关于容器set的详细用法,附一个链接,感兴趣可以查看。(别人写的,很详细)