Equal Stacks

  • + 0 comments

    A python solution:

    def equalStacks(h1, h2, h3):
        # Write your code here
        len_h1 = len(h1)
        len_h2 = len(h2)
        len_h3 = len(h3)
        
        index_counter = 0
        
        index_shifter = -1
        
        running_sum_h1 = 0
        
        running_sum_h2 = 0
        
        running_sum_h3 = 0
        
        master_dict = {}
        
        while index_counter <= max(len_h1, len_h2, len_h3):
        
            if abs(index_shifter) <= len_h1:
                running_sum_h1 += h1[index_shifter]
                if running_sum_h1 in master_dict:
                    master_dict[running_sum_h1] += 1
                else:
                    master_dict[running_sum_h1] = 1
                
            if abs(index_shifter) <= len_h2:
                running_sum_h2 += h2[index_shifter]
                if running_sum_h2 in master_dict:
                    master_dict[running_sum_h2] += 1
                else:
                    master_dict[running_sum_h2] = 1
                
            if abs(index_shifter) <= len_h3:
                running_sum_h3 += h3[index_shifter]
                if running_sum_h3 in master_dict:
                    master_dict[running_sum_h3] += 1
                else:
                    master_dict[running_sum_h3] = 1
                
            index_shifter -= 1
                
            index_counter += 1
            
        index_counter = 0
        
        match_list = [height for height in master_dict if master_dict[height] == 3]
        
        if not match_list:
            return 0
        else:
            return match_list[-1]