Python | Count the Number of matching characters in a pair of string
The problem is about finding how many characters are the same in two strings. We compare the strings and count the common characters between them. In this article, we’ll look at different ways to solve this problem.
Using Set
Sets are collections of unique items, so by converting both strings into sets, we can easily find the common characters between them. This method is efficient because sets quickly identify matches.
Example:
s1 = "VISHAKSHI"
s2 = "VANSHIKA"
# find common characters
res= len(set(s1.lower()).intersection(set(s2.lower())))
print(res)
Output
6
Explanation:
- s1.lower() and s2.lower() converts both strings to lowercase to ensure case-insensitivity.
- set(s1.lower()) and set(s2.lower()) converts the strings to sets, removing duplicate characters.
- intersection() finds common characters between the two sets.
- len() counts the number of common characters.
Using Counter
Counter
that helps to count how many times each item appears in a list or string. It’s useful for tasks like finding out how many characters are shared between two strings.
Example:
from collections import Counter
s1 = "VISHAKSHI"
s2 = "VANSHIKA"
# Count characters
c1 = Counter(s1.lower())
c2= Counter(s2.lower())
# Find common characters and sum their counts
res = sum((c1 & c2).values())
print(res)
Output
6
Explanation:
- Counter(s1.lower()) and Counter(s2.lower()) counts the frequency of each character in both strings.
- c1 & c2 finds the common characters between the two strings, keeping the minimum frequency.
- sum((c1 & c2).values()) sums the frequencies of the common characters.
Using List Comprehension
This method checks which characters are found in both strings by turning them into sets. It then counts how many characters are the same in both strings.
s1 = "VISHAKSHI"
s2 = "VANSHIKA"
# Find common characters
res= len([char for char in set(s1.lower())
if char in set(s2.lower())])
print(res)
Output
6
Explanation:
- set(string1.lower()) and set(string2.lower()) converts both strings to lowercase and then into sets to remove duplicates and ensure case-insensitive comparison.
- list comprehension find characters that appear in both sets.
- len() counts the number of common characters.