Programming Data Structure And Algorithms Using Python | Week 2

   
   

Session: JAN-APR 2023

Course Name: Programming Data Structure And Algorithms Using Python

Course Link: Click Here

These are Programming Data Structure And Algorithms Assignment 2 Answers


Q1. One of the following 10 statements generates an error. Which one? (Your answer should be a number between 1 and 10.)

x = ["sun",[17],2,"king",[3,4]] # Statement 1
y = x[0:8]                      # Statement 2
z = x                           # Statement 3
w = y                           # Statement 4
z[0] = 0                        # Statement 5
y[0] = y[0][0:3] + 'k'          # Statement 6
y[1][1:3] = [5,8]               # Statement 7
x[0] = x[0][1:3]                # Statement 8
w[4][0] = 1000                  # Statement 9
a = (x[4][1] == 4)              # Statement 10

Answer: 8


Q2. Consider the following lines of Python code.

x = [589,'big',397,'bash']
y = x[2:]
u = x
w = y
w = w[0:]
w[0] = 357
x[2:3] = [487]

After these execute, which of the following is correct?
a. x[2] == 487, y[0] == 397, u[2] == 487, w[0] == 357
b. x[2] == 487, y[0] == 357, u[2] == 487, w[0] == 357
c. x[2] == 487, y[0] == 397, u[2] == 397, w[0] == 357
d. x[2] == 487, y[0] == 357, u[2] == 397, w[0] == 357

Answer: a. x[2] == 487, y[0] == 397, u[2] == 487, w[0] == 357


These are Programming Data Structure And Algorithms Assignment 2 Answers


Q3. What is the value of second after executing the following lines?

first = "kaleidoscope"
second = ""
for i in range(len(first)-1,-1,-2):
  second = first[i]+second

Answer: ‘aedsoe’


Q4. What is the value of list1 after the following lines are executed?

def mystery(l):
  l[0:2] = l[3:5]
  return()

list1 = [34,17,12,88,53,97,62]
mystery(list1)

Answer: [88, 53, 12, 88, 53, 97, 62]


These are Programming Data Structure And Algorithms Assignment 2 Answers


Programming Data Structure And Algorithms Using Python Programming Assignment Question

Question 1

1. A positive integer m can be partitioned as primes if it can be written as p + q where p > 0, q > 0 and both p and q are prime numbers.
Write a Python function primepartition(m) that takes an integer m as input and returns True if m can be partitioned as primes and False otherwise. (If m is not positive, your function should return False.)
Here are some examples of how your function should work.

>>> primepartition(7)
True

>>> primepartition(185)
False

>>> primepartition(3432)
True

These are Programming Data Structure And Algorithms Assignment 2 Answers

2. Write a function matched(s) that takes as input a string s and checks if the brackets “(” and “)” in s are matched: that is, every “(” has a matching “)” after it and every “)” has a matching “(” before it. Your function should ignore all other symbols that appear in s. Your function should return True if s has matched brackets and False if it does not.
Here are some examples to show how your function should work.

>>> matched("zb%78")
True

>>> matched("(7)(a")
False

>>> matched("a)*(?")
False

>>> matched("((jkl)78(A)&l(8(dd(FJI:),):)?)")
True

These are Programming Data Structure And Algorithms Assignment 2 Answers

3. A list rotation consists of taking the first element and moving it to the end. For instance, if we rotate the list [1,2,3,4,5], we get [2,3,4,5,1]. If we rotate it again, we get [3,4,5,1,2].
Write a Python function rotatelist(l,k) that takes a list l and a positive integer k and returns the list l after k rotations. If k is not positive, your function should return l unchanged. Note that your function should not change l itself, and should return the rotated list.
Here are some examples to show how your function should work.

>>> rotatelist([1,2,3,4,5],1)
[2, 3, 4, 5, 1]

>>> rotatelist([1,2,3,4,5],3)
[4, 5, 1, 2, 3]

>>> rotatelist([1,2,3,4,5],12)
[3, 4, 5, 1, 2]

Solution:

###########

def factors(n):
  factorlist = []
  for i in range(1,n+1):
    if n%i == 0:
      factorlist.append(i)
  return(factorlist)

def prime(n):
  return(factors(n)==[1,n])

def primepartition(n):
  for i in range(1,n//2+1):
  if prime(i) and prime(n-i):
   return(True)
  return(False)

###########

def matched(s):
  nesting = 0
  for c in s:
    if c == '(':
      nesting = nesting + 1
    elif c == ')':
      nesting = nesting - 1
    if nesting < 0:
      return(False)
  return(nesting == 0)

###########

def rotatelist(l,k):
  retlist = l[:]

  if k <= 0:
    return(retlist)

  for i in range(1,k+1):
  retlist = retlist[1:] + [retlist[0]]
  return(retlist)

###########


import ast

def tolist(inp):
  inp = "["+inp+"]"
  inp = ast.literal_eval(inp)
  return (inp[0],inp[1])

def parse(inp):
  inp = ast.literal_eval(inp)
  return (inp)

fncall = input()
lparen = fncall.find("(")
rparen = fncall.rfind(")")
fname = fncall[:lparen]
farg = fncall[lparen+1:rparen]

if fname == "primepartition":
   arg = parse(farg)
   print(primepartition(arg))
elif fname == "matched":
   arg = parse(farg)
   print(matched(arg))
elif fname == "rotatelist":
   (arg1,arg2) = parse(farg)
   myarg1 = arg1[:]
   rotatelist(arg1,arg2)
   if myarg1 == arg1:
     print(rotatelist(arg1,arg2))
   else:
     print("Illegal side effect")
else:
 print("Function", fname, "unknown")

These are Programming Data Structure And Algorithms Assignment 2 Answers

More Weeks of Programming Data Structure And Algorithms: Click Here

More Nptel courses: https://progiez.com/nptel


Session: JULY-DEC 2022

Q1. One of the following 10 statements generates an error. Which one? (Your answer should be a number between 1 and 10.)

x = [[3,5],"mimsy",2,"borogove",1]  # Statement 1
y = x[0:50]                          # Statement 2
z = y                                # Statement 3
w = x                                # Statement 4
x[1] = x[1][:5] + 'ery'              # Statement 5
y[1] = 4                             # Statement 6
w[1][:3] = 'fea'                     # Statement 7
z[4] = 42                            # Statement 8
x[0][0] = 5555                       # Statement 9
a = (x[3][1] == 1)                   # Statement 10

Answer: 7


These are Programming Data Structure And Algorithms Assignment 2 Answers


Q2. Consider the following lines of Python code.

Which of the following holds at the end of this code?

b = [43,99,65,105,4]
a = b[2:]
d = b[1:]
c = b
d[1] = 95
b[2] = 47
c[3] = 73

Answer: c – a[0] == 65, b[3] == 73, c[3] == 73, d[1] == 95


These are Programming Data Structure And Algorithms Assignment 2 Answers


Q3. What is the value of endmsg after executing the following lines?

startmsg = "anaconda"
endmsg = ""
for i in range(1,1+len(startmsg)):
  endmsg = endmsg + startmsg[-i]

Answer: ‘anaconda’


These are Programming Data Structure And Algorithms Assignment 2 Answers


Q4. What is the value of mylist after the following lines are executed?

def mystery(l):
  l = l[2:]
  return(l)

mylist = [7,11,13,17,19,21]
mystery(mylist)

Answer: [7,11,13,17,19,21]


These are Programming Data Structure And Algorithms Assignment 2 Answers


Programming Data Structures And Algorithms Using Python Coding Assignment 2 Answers

Q1. Write a function intreverse(n) that takes as input a positive integer n and returns the integer obtained by reversing the digits in n. Write a function matched(s) that takes as input a string s and checks if the brackets “(” and “)” in s are matched: that is, every “(” has a matching “)” after it and every “)” has a matching “(” before it. Your function should ignore all other symbols that appear in s. Your function should return True if s has matched brackets and False if it does not. Write a function sumprimes(l) that takes as input a list of integers l and retuns the sum of all the prime numbers in l.

Sol:-

def intreverse(n):
  ans = 0
  while n > 0:
    (d,n) = (n%10,n//10)
    ans = 10*ans + d
  return(ans)

def matched(s):
  nested = 0
  for i in range(0,len(s)):
    if s[i] == "(":
       nested = nested+1
    elif s[i] == ")":
       nested = nested-1
       if nested < 0:
          return(False)    
  return(nested == 0)

def factors(n):
  factorlist = []
  for i in range(1,n+1):
    if n%i == 0:
      factorlist = factorlist + [i]
  return(factorlist)

def isprime(n):
  return(factors(n) == [1,n])


def sumprimes(l):
  sum = 0
  for i in range(0,len(l)):
    if isprime(l[i]):
      sum = sum+l[i]
  return(sum)

These are Programming Data Structure And Algorithms Assignment 2 Answers


* 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.


More from PROGIEZ

These are Programming Data Structure And Algorithms Assignment 2 Answers