零基础学C/C++160——字符串
题目描述
给定两个由小写字母组成的字符串A和B,判断B中的字符是否全部在A中出现。
输入
输入为多组测试数据。
输入数据只有一行,包含2个字符串A和B,每个字符串后面有一个#字符标记(#不属于A或B),其中B字符串不为空,两个字符串长度均不超过1000000。
输出
如果B中的字符全部在A中出现,输出Yes,否则输出No。
样例输入 Copy
abc#ab#
样例输出 Copy
Yes
上代码
代码
#include <bits/stdc++.h>
using namespace std;
int main() {
string line;
while (getline(cin, line)) {
size_t pos = line.find('#');
if (pos == string::npos) {
continue;
}
string A = line.substr(0, pos);
string B = line.substr(pos + 1);
unordered_set<char> charSet(A.begin(), A.end());
bool duan = true;
for (char ch : B) {
if (ch == '#') break;
if (charSet.find(ch) == charSet.end()) {
duan = false;
break;
}
}
if (duan) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
}
return 0;
}