题目描述
判断字符串b的所有字符是否都在字符串a中出现过,a、b都是可能包含汉字的字符串。b中重复出现的汉字,那么a中也要至少重复相同的次数。汉字使用gbk编码(简单的说,用两个字节表示一个汉字,高字节最高位为1的代表汉字,低字节最高位可以不为1)。
int is_include(char *a, char *b);
返回0表示没有都出现过,返回1表示都出现过。
请设计一个算法。
输入
字符串a\n字符串b
| 样例输入aaaabbbcccdddss abc |
输出
0或者1
| 样例输出
1
|
时间限制C/C++语言:1000MS其它语言:3000MS | 内存限制C/C++语言:65536KB其它语言:589824KB |
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1, str2;
cin >> str1 >> str2;
for (string::iterator sitr = str2.begin(); sitr != str2.end(); ++sitr) {
size_t found = str1.find(*sitr);
if (found == string::npos) {
cout << "0" << endl;
return 0;
} else
str1.erase(str1.begin() + found);
}
cout << "1" << endl;
return 0;
}