### Programming Data Structure And Algorithms Using Python Assignment 5

Course Name: Programming Data Structure And Algorithms Using Python

Link of Course: Click Here

**These are the solutions of Programming Data Structure And Algorithms Using Python Assignment 5**

**Question 1****Here are some basic facts about tennis scoring : A tennis match is made up of sets. A set is made up of games. ****To win a set, a player has to win 6 games with a difference of 2 games. At 6-6, there is often a special tie-breaker. In some cases, players go on playing till one of them wins the set with a difference of two games.**

**These are the solutions of Programming Data Structure And Algorithms Using Python Assignment 5**

**Tennis matches can be either 3 sets or 5 sets. The player who wins a majority of sets wins the match (i.e., 2 out 3 sets or 3 out of 5 sets) The score of a match lists out the games in each set, with the overall winner’s score reported first for each set. Thus, if the score is 6-3, 5-7, 7-6 it means that the first player won the first set by 6 games to 3, lost the second one 5 games to 7 and won the third one 7 games to 6 (and hence won the overall match as well by 2 sets to 1).**

**These are the solutions of Programming Data Structure And Algorithms Using Python Assignment 5**

**You will read input from the keyboard (standard input) containing the results of several tennis matches. Each match’s score is recorded on a separate line with the following format : ****Winner : Loser : Set-1-score,…, Set-k-score, where 2 s<=ks<=5 ****For example, an input line of the form ****Osaka : Barty : 3-6,6-3,6-3 ****indicates that Osaka beat Barty 3-6, 6-3, 6-3 in a best of 3 set match. **

**These are the solutions of Programming Data Structure And Algorithms Using Python Assignment 5**

**The input is terminated by a blank line. ****You have to write a Python program that reads information about all the matches and compile the following statistics for each player :1. Number of best-of-5 set matches won 2. Number of best-of-3 set matches won 3. Number of sets won 4. Number of games won 5. Number of sets lost 6. Number of games lost **

**These are the solutions of Programming Data Structure And Algorithms Using Python Assignment 5**

**You should print out to the screen (standard output) a summary in decreasing order of ranking, where the ranking is according to the criteria 1-6 in that order (compare item 1, if equal compare item 2, if equal compare item 3 etc, noting that for items 5 and 6 the comparison is reversed). For instance, given the following data **

**These are the solutions of Programming Data Structure And Algorithms Using Python Assignment 5**

**Zverev : Medvedev : 2-6, 6-7,7-6,6-3,6-1 Barty : Osaka : 6-4,6-4 Medvedev : Zverev : 6-3,6-3 Osaka : Barty : 1-6,7-5,6-2 Zverev : Medvedev : 6-0,7-6, 6-3 Osaka : Barty : 2-6,6-2,6-0 Medvedev : Zverev : 6-3,4-6,6-3,6-4 Barty : Osaka : 6-1,3-6,7-5 Zverev : Medvedev : 7-6,4-6, 7-6,2-6, 6-2 Osaka : Barty : 6-4,1-6, 6-3 Medvedev : Zverev : 7-5,7-5 Osaka : Barty : 3-6,6-3,6-3 your program should print out the following Zverev 3 0 10 104 11 186 Medvedev 1 2 11 106 10 104 Osaka 0 4 9 76 8 74 Barty 0 2 8 74 9 76**

**Solution:**

```
DictionaryStats = dict()
Line_Input= input()
while Line_Input:
(winner_set,loser_set,win_games,lose_games) = (0,0,0,0)
(winner,loser,setscores) = Line_Input.strip().split(':',2)
sets = setscores.split(',')
for set in sets:
(winstr,losestr) = set.split('-')
win = int(winstr)
lose = int(losestr)
win_games = win_games +win
lose_games = lose_games+ lose
if win > lose:
winner_set = winner_set+1
else:
loser_set=loser_set+1
for player in [winner,loser]:
try:
DictionaryStats[player]
except KeyError:
DictionaryStats[player]=[0,0,0,0,0,0]
if winner_set >=3:
DictionaryStats[winner][0]=DictionaryStats[winner][0]+1
else:
DictionaryStats[winner][1]=DictionaryStats[winner][1]+1
DictionaryStats[winner][2]=DictionaryStats[winner][2]+ winner_set
DictionaryStats[winner][3]=DictionaryStats[winner][3]+win_games
DictionaryStats[winner][4]=DictionaryStats[winner][4]-loser_set
DictionaryStats[winner][5]=DictionaryStats[winner][5] - lose_games
DictionaryStats[loser][2] = DictionaryStats[loser][2] + loser_set
DictionaryStats[loser][3] = DictionaryStats[loser][3] + lose_games
DictionaryStats[loser][4] = DictionaryStats[loser][4] - winner_set
DictionaryStats[loser][5] = DictionaryStats[loser][5] - win_games
Line_Input = input()
statlist = [(stat[0],stat[1],stat[2],stat[3],stat[4],stat[5],name) for name in
DictionaryStats.keys() for stat in [DictionaryStats[name]]]
statlist.sort(reverse = True)
for entry in statlist:
print(entry[6],entry[0],entry[1],entry[2],entry[3],-entry[4],-entry[5])
```

**These are the solutions of Programming Data Structure And Algorithms Using Python Assignment 5**

All weeks solution of Programming Data Structure And Algorithms Using Python: https://progies.in/answers/nptel/programming-data-structure-and-algorithms-using-python

More NPTEL Solutions: https://progies.in/answers/nptel

* The material and content uploaded on this website are for general information and reference purposes only. Please do it by your own first. COPYING MATERIALS IS STRICTLY PROHIBITED.