我用collections Counter
来计算两个字符串中的普通字母的数目。在
from collections import Counter
a = "abcc"
b = "bcaa"
answer = 0
ac = Counter(a)
bc = Counter(b)
for key in ac:
answer += min(ac[key], bc[key])
print answer
解决方案试图找出两个字符串中的共同字母的数量(相同的字母仍然在计算)。我的问题是,我开发了这个逻辑,但我担心它可能是一个轮子的重新发明。有什么介绍的方法,或者更简单的方法吗?在
注意:我的问题不同于那些试图在字符串之间找到普通字母的问题,我只需要计数,这样我就可以找到一些基本的东西。在
IMHO略好于Frerich Raabe good answer(我没有看到,这个答案是从一个重复的问题中迁移过来的),我会使用经典的
collections.Counter
计算两个字符串中的字母,然后在字典之间执行最小函数(如果字母不在第二个dict中,访问它将返回0,因此无需测试第二个字典中的值)导入集合
打印
3
使用
.items()
可以保存对第一个计数器字典的一键访问。在这是在一次采访中问我的。 有更好的方法。 数到26个字符,然后取最小值。 以下是完整的解决方案:
不,据我所知,你没有重新发明轮子。你的解决方案已经很简洁了。您可以使用
sum
函数将代码缩短一点,然后将其放入一个专用函数中,以强调简单性:这里没什么可脱光的。在
相关问题 更多 >
编程相关推荐