Solution for Test Yourself 3



Hello Folks....

I think these two days you tried on the exercises I posted. I am posting the solutions now. Check your answers with this. Try these in your editors.

Q1: Armstrong number

n=int(input())
num=n
ans=0

while n>0:
    l=n%10
    ans+=(l*l*l)
    n=n//10
    
if ans==num:
    print(num," is an armstrong number")
else:
    print(num," is not an armstrong number")


Q2: Maximum row sum and column sum 

li=[ [1,2,3],
   [2,3,5],
   [5,2,6]]
max_row_sum=[]
max_col_sum=[]
for i in range(0,len(li)):
    row_sum=0
    for j in range (0,len(li[0])):
        row_sum+=(li[i][j])
        max_row_sum.append(row_sum)
    print("row ",i," :",row_sum)
print("")
for i in range(0,len(li[0])):
    col_sum=0
    for j in range (0,len(li)):
        col_sum+=(li[j][i])
        max_col_sum.append(col_sum)

    print("col ",i," :",col_sum)
    
print("Maximum row sum =",max(max_row_sum))  
print("Maximum column sum =",max(max_col_sum)) 

Q3: Next largest number in list 

** Asked in Amazon interview.

li=[5,6,1,3,9,2,3,4]
for i in range (0,len(li)):
    for j in range(i+1,len(li)):
        if li[j]>li[i]:
            print(li[j],end=" ")
            break
    else :
        print(-1)


Q4: Sequence with highest no.of.1's

li=["11000101101","10101110101","1000110001","110001111","00110101011111"]
k=int(input())
ans_li=[]

for i in li:
    st=[]
    k1=k
    m=0
    cnt=0
    st=list(i)
    print(st)

    while k1>0 and m<len(st):
        if st[m]=='1':
            st[m]='0'
            k1=k1-1
            m=m+1
        else:
            st[m]='1'
            k1=k1-1
            m=m+1
    print(st)
    cnt=st.count('1')
    print(cnt)
    ans_li.append(cnt)
n=ans_li.index(max(ans_li))
print("Maximum no.of.1's is in :",li[n])

Q5: Pairs with sum k.

**Asked in many interviews in optimized approach which will be discussed later.

li1=[3,5,4,9,34,2,54,80,20,43,7,6]
k=int(input())
li=list(x for x in li1 if x<=k)
print(li)
pairs=[]
for i in range(0,len(li)):
    a=li[i]
    for j in range(i+1,len(li)):
        b=li[j]        
        if(a+b==k):
            pairs.append((a,b))

print(pairs)   

Comments