题目描述:
给定两个字符串,
从字符串2中找出字符串1中的所有字符,
去重并按照ASCII码值从小到大排列,
输入描述
字符范围满足ASCII编码要求,
输入字符串1长度不超过1024,
字符串2长度不超过100
输出描述
按照ASCII由小到大排序
示例一
输入
bach
bbaaccddfg
输出
abc
示例二
输入
fach
bbaaccedfg
输出
acf
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
#include<iostream>
#include<map>
#include<string >
#include<vector>
#include<algorithm>
#include<set>
using namespace std;
set<char>map1;
class Solution
{
public:
void Find(string &str2, set<char>&map2)
{
for (auto& x : str2)
{
if (map1.count(x)&&(!map2.count(x)))
{
map2.insert(x);
}
}
}
};
int main()
{
Solution s1;
string str1;
cin >> str1;
vector<char>arr;
set<char>map2;
for (auto& x : str1)
{
map1.insert(x); //这里不能起名map
}
string str2;
cin >> str2;
s1.Find(str2,map2);
std::set<char> ::iterator it = map2.begin();
取set中的元素暂时指向到了指针办法,没有其他访问元素的方法,
for (;it!=map2.end();it++)
{
cout <<*(it);
}
return 0;
}