HackerRank Python Solution - Sets - .difference() operation

HackerRank Python Solution - Sets - .difference() operation
.difference():
  • The tool .difference() returns a set with all the elements from the set that are not in an iterable. Sometimes the - operator is used in place of the .difference() tool, but it only operates on the set of elements in the set.
  • Set is immutable to the .difference() operation (or the - operation).

>>> s = set("Hacker")
>>> print s.difference("Rank")
set(['c', 'r', 'e', 'H'])

>>> print s.difference(set(['R', 'a', 'n', 'k']))
set(['c', 'r', 'e', 'H'])

>>> print s.difference(['R', 'a', 'n', 'k'])
set(['c', 'r', 'e', 'H'])

>>> print s.difference(enumerate(['R', 'a', 'n', 'k']))
set(['a', 'c', 'r', 'e', 'H', 'k'])

>>> print s.difference({"Rank":1})
set(['a', 'c', 'e', 'H', 'k', 'r'])

>>> s - set("Rank")
set(['H', 'c', 'r', 'e'])
Task:
  • Students of District College have a subscription to English and French newspapers. Some students have subscribed to only the English newspaper, some have subscribed to only the French newspaper, and some have subscribed to both newspapers.
  • You are given two sets of student roll numbers. One set has subscribed to the English newspaper, and one set has subscribed to the French newspaper. Your task is to find the total number of students who have subscribed to only English newspapers.
Input Format:
  • The first line contains the number of students who have subscribed to the English newspaper.
  • The second line contains the space-separated list of student roll numbers who have subscribed to the English newspaper.
  • The third line contains the number of students who have subscribed to the French newspaper.
  • The fourth line contains the space-separated list of student roll numbers who have subscribed to the French newspaper.
Constraints:
  • 0 < Total number of students in college < 1000
Output Format:
  • Output the total number of students who are subscribed to the English newspaper only.
Sample Input:

9
1 2 3 4 5 6 7 8 9
9
10 1 2 3 11 21 55 6 8
Sample Output:

4
Explanation:
  • The roll numbers of students who only have English newspaper subscriptions are 4, 5, 7, and 9.
  • Hence, the total is 4 students.
Solution:

m = int(input())

eng_roll = set(input().split())

n = int(input())

french_roll = set(input().split())

print(len(eng_roll.difference(french_roll)))
Disclaimer: The problem statement is given by hackerrank.com but the solution is generated by the Geek4Tutorial admin. If there is any concern regarding this post or website, please contact us using the contact form. Thank you!

No comments:

Post a Comment

You might also like

Deploy your Django web app to Azure Web App using App Service - F1 free plan

In this post, we will look at how we can deploy our Django app using the Microsoft Azure app service - a free plan. You need an Azure accoun...