set与string例题

set的优点:

1.自动排序

2.不需要考虑大小;

3.去重 

string更像是一种字符串数组的优化版

计算集合的并

给你两个集合,计算其并集,即 

set与string例题

注: 中不允许出现重复元素,但是 

set与string例题

 与  之间可能存在相同元素。

输入格式

输入数据分为三行,第一行有两个数字 

set与string例题

,分别表示集合 A 和集合 B 的元素个数。后两行分别表示集合 A 和集合 B。每个元素为不超出int范围的整数,每个元素之间用一个空格隔开。

输出格式

输出一行数据,表示合并后的集合,要求从小到大输出,每个元素之间用一个空格隔开。

样例输入1

1 2
1
2 3

样例输出1

1 2 3

样例输入2

1 2
1
1 2

样例输出2

1 2
#include<stdio.h>
#include<string>
#include<math.h>
#include<iostream>
#include<set>
//集合,1.自动有序(升序);2.不重复 
using namespace std;
int main()
{
	set<int>str;//定义 
	int n,m,a,i,j;
	cin>>n>>m;
	for(i=0;i<n;i++)
	{
		cin>>a;
		str.insert(a);//插入 
	}
	for(i=0;i<m;i++)
	{
		cin>>a;
		str.insert(a);
	}
	set<int>::iterator it;//迭代器 
	for(it = str.begin();it!=str.end();it++)
	{
		if(it== str.begin())
		{
			cout<<*it;
		}
		else
		{
			cout<<" "<<*it;
		}
	}
	return 0;
} 

学英语 

小A快要考托福了,这几天,小A每天早上都起来记英语单词。小B时不时地来考一考蒜头君:小B会询问蒜头君一个单词,如果小A背过这个单词,小A会告诉小B这个单词的意思,不然小A会跟小B说还没有背过。单词是由连续的大写或者小写字母组成。注意单词中字母大小写是等价的。比如"You""you"是一个单词。

输入格式

首先输入一个 

set与string例题

 表示事件数。接下来 n 行,每行表示一个事件。每个事件输入为一个整数 d 和一个单词 word(单词长度不大于 20),用空格隔开。如果 d=0,表示小A记住了 word 这个单词,如果 d=1,表示这是一个 测试,测试小A是否认识单词 word(小B不会告诉蒜头君这个单词的意思)。事件的输入是按照时间先后顺序输入的

输出格式

对于小B的每次 测试,如果小A认识这个单词,输出一行"Yes", 否则输出一行"No"

样例输入1

5
0 we
0 are
1 family
0 Family
1 Family

样例输出1

No
Yes

样例输入2

4
1 jisuanke
0 Jisuanke
0 JISUANKE
1 JiSuanKe

样例输出2

No
Yes

 

#include<stdio.h>
#include<string>
#include<math.h>
#include<iostream>
#include<set>
using namespace std;
int main()
{
	int n,a,i,j;
	set<string>str;
	cin>>n;
	string word;
	for(i=0;i<n;i++)
	{
		cin>>a>>word;
		for(j=0;j<word.length();j++)
		{
			word[j]=tolower(word[j]);//大写转小写 
		}
		if(a==0)
		{
			str.insert(word);
		}
		else
		{
			if(str.count(word))
			{
				cout<<"Yes"<<endl;
			}
			else
			{
				cout<<"No"<<endl;
			}
		}
	} 
	return 0;
} 

上一篇:创建你的第一个 DeepFake 视频


下一篇:[daily][qemu][kvm] 使用qemu/kvm模拟numa节点