Non-overlapping sum of two sets in Python
In this tutorial, we will learn how to find the non-overlapping sum of two sets in Python.
Problem Statement–
We are given two sets, we have to find the sum of all elements which are not common in them.
In a set, the value of the element identifies it and is always unique.
Examples
- Input: Set1 = {1 , 2 , 4 , 7} Set2 = {2 , 7 , 5 , 9}
Output: 19 (4 + 1 + 5 + 9)
- Input: Set1={1 , 3 , 5 , 6 } Set2={ }
Output: 15 (1 + 3 + 5 + 6) //as Set2 is empty all elements of Set1 will be added
- Input: Set1={1 , 2 , 3 , 4} Set2={4 , 1 , 3 , 2}
Output: 0 //order does not matter in sets –both the sets are equal
Method 1- Naive Approach non-overlapping sum of two sets
For every element in Set1 check whether it exists in Set2 or not. For checking if an element exists in the set or not we traverse through the entire set. If it does not exist in Set2 add it to the sum.
Similarly, traverse through all the elements of Set2 and check whether it exists in Set1 or not (by traversing through the entire Set1 each time).
Set1 = {1 , 3 , 6 , 7 , 9} Set2 = {7 , 5 , 1 , 4 , 2} #7, 1 are common in Set1 and Set2 ans=0 for x in Set1: #traversing through every element of Set1 a=0 for y in Set2: #checking if the element exists in Set2 or not if x==y: #if it exists in Set2, we will not add it a=1 break if a==0: ans+=x for x in Set2: #repeating this procedure for all emements of Set2 a=0 for y in Set1: if x==y: a=1 break if a==0: ans+=x print(ans)
Output
29
Method 2 – Non-overlapping sum of two sets in Python
In this code instead of traversing through the entire set, to check if an element exists in the set or not, we will use the inbuilt function not in.
NOT IN: Returns True if the specified value is not present in the object
Set1 = {1 , 3 , 6 , 7 , 9} Set2 = {7 , 5 , 1 , 4 , 2} #7, 1 are common in Set1 and Set2 ans=0 for x in Set1: #checking for all elements of Set1 if x not in Set2: # if element does not exist in Set2 add it ans+=x for y in Set2: #checking for all elements of Set2 if y not in Set1: ans+=y print(ans)
Output
29
Method 3- Using symmetric_difference() Method
Set1.symmetric_differnce(Set2): Returns a set that contains all items from both sets (x and y), except items that are present in both sets.
Set1 = {1 , 3 , 6 , 7 , 9} Set2 = {7 , 5 , 1 , 4 , 2} #7, 1 are common in Set1 and Set2 Set3=Set1.symmetric_difference(Set2) #creates a set which contains all elements of Set1 and Set2 except those which are common to both of them ans=0 for x in Set3: ans+=x print(ans)
Output
29
You may also read:
Leave a Reply