一、将输入转化为列表,方便查找,修改
二、将摊主列表中查找到的珠子改为其他字符,避免重复计数。比如小红想要两颗同样的珠子,而摊主只有一颗,会将珠子记为两颗而导致错误
三、联合使用for...else和break语句,只有当for循环全部执行完才会执行else语句,如果执行break语句就会跳出for循环,不会再执行else语句。可将for...else看为一体,而break则跳出这个循环体
题目不要求输出缺少珠子的类型,而是简单的计数。可以不使用列表,直接使用变量来计数
n = list(map(str,input()))
m = list(map(str,input()))
lack = []
for i in range(len(m)):
for k in range(len(n)):
if m[i] == n[k]:
n[k] = "#"
break
else:
lack.append(m[i])
if lack == []:
print("Yes",len(n)-len(m))
else:
print("No",len(lack))