Answer to Question #289408 in Python for Mohan

Question #289408

Triplet Sum



Given an array n integers, find and print all the unique triplets (a, b, c) in the array which give the sum K. (a+b+c=K).Input





The first line of the input will be space separated integers, denoting the elements of the array. The second line of the input will be an integer denoting the required sum KOutput





The output should be multiple lines, each line containing a unique triplet. The elements of the triple must be sorted in increasing order and all the triplets printed must be sorted in increasing order. Print "No Matching Triplets Found" if there are no triplets with the given sum.Explanation





When the given array is [0, 1, 2, 3, 5, 7, 13, 17, 19, 19] and the required sum is 22, the triplets (0, 3, 19), (0, 5, 17), (1, 2, 19), (2, 3, 17) and (2, 7, 13) have the given sum 22.




Sample input 1:



0 1 2 3 5 7 13 17 19 19



22




Sample output 1:



(0, 3, 19)



(0, 5, 17)



(1, 2, 19)



(2, 3, 17)



(2, 7, 13)




1
Expert's answer
2022-01-23T16:31:39-0500
def TripletSum(arr, K):
    arr_size = len(arr)
    found=False
    arr.sort()
 
    for a in range(0, arr_size - 2):    
        b = a + 1
        c = arr_size - 1
        while (b < c):        
            if( arr[a] + arr[b] + arr[c] == K):
                print(( arr[a], arr[b], arr[c]))
                b+=1
                c-=1
                found = True          
            elif (arr[a] + arr[b] + arr[c] < K):
                b += 1
            else:
                c -= 1
    if (found == False):
        print("No Matching Triplets Found")
arr = [0, 1, 2, 3, 5, 7, 13, 17, 19, 19]
K = 22
TripletSum(arr, K)
(0, 3, 19)
(0, 5, 17)
(1, 2, 19)
(2, 3, 17)
(2, 7, 13)

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog
APPROVED BY CLIENTS