题目描述
判断字符串b的所有字符是否都在字符串a中出现过,a、b都是可能包含汉字的字符串。b中重复出现的汉字,那么a中也要至少重复相同的次数。汉字使用gbk编码(简单的说,用两个字节表示一个汉字,高字节最高位为1的代表汉字,低字节最高位可以不为1)。
int is_include(char *a, char *b);
返回0表示没有都出现过,返回1表示都出现过。
请设计一个算法。
代码如下:
str_a = input()
str_b = input()
str_ai,str_bi = list(set(str_a)),list(set(str_b))
def dic(str_x,str_y):
dic = {}
for i in range(len(str_y)):
count = str_x.count(str_y[i])
dic[str_y[i]] = count
return dic
def str_judge(str_ai,str_bi):
if len(str_ai)<len(str_bi):
return 0
else:
c = 0
dic_a = dic(str_a, str_ai)
dic_b = dic(str_b, str_bi)
for i in str_bi:
if (i not in dic_a.keys()):
return 0
elif dic_a[i] < dic_b[i]:
return 0
else:
c += 1
if c == len(str_bi):
return 1
else:
return 0
print(str_judge(str_ai,str_bi))