I've been trying to solve this program which takes two strings as input and outputs number of common letters. For Example, if the input was "common" and "connor" then the output should be 4 ( 1 c , 1 n and 2 o's ).I used set() function but it outputs 3 ( it treats both o's as a single common letter ). Any help would be appreciated.Thanks!!!
Btw here's the code i wrote:
print("Enter number of inputs: ")
c = int(input())
store = []
for each_item in range(c):
print("Enter First String: ")
one = input()
print("Enter Second String")
two = input()
s = len(set(one) & set(two))
store.append(s)
for each_number in store:
print(each_number)
Use collections.Counter
:
>>> from collections import Counter
>>> Counter('common')
Counter({'m': 2, 'o': 2, 'c': 1, 'n': 1})
>>> Counter('connor')
Counter({'o': 2, 'n': 2, 'c': 1, 'r': 1})
>>> common = Counter('common') & Counter('connor') # intersection
>>> common
Counter({'o': 2, 'c': 1, 'n': 1})
>>> sum(common.values())
4
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With