This python function takes a list of tuples as its argument.

Where

Tuple(n):(height,weight) of nth person

**#!/usr/bin/python
#This function takes a list of tuples. Tuple(n):(height,weight) of nth person
def htower_len(ht_wt):
ht_sorted = sorted(ht_wt,reverse=True)
wt_sorted = sorted(ht_wt,key=lambda ht_wt:ht_wt[1])
max_len = 1
len1 = len(ht_sorted)
i=0
j=0
while i < (len1-1):
if(ht_sorted[i+1][1] < ht_sorted[0][1]):
max_len = max_len+1
i=i+1
print "maximum tower length :" ,max_len **

I constructed 3 different test cases to test this function.

This above function can be invoked using below test app code, and their results are shown below the function calls:

Test case 1:

htower_len([(5,75),(6.7,83),(4,78),(5.2,90)])

maximum tower length : 3

htower_len([(65, 100),(70, 150),(56, 90),(75, 190),(60, 95),(68, 110)])

maximum tower length : 6

htower_len([(3,2),(5,9),(6,7),(7,8)])

maximum tower length : 3