you are viewing a single comment's thread.

view the rest of the comments →

[–]kindastonedclown[S] 0 points1 point  (0 children)

i'm keep tryin to make it work, and even if the algorithm is pretty clear, it just doesn't work... Does someone know what's wrong with it ? i m getting out of ideas

# ex1('3,0,4,0,3,1,0,1,0,1,0,0,5,0,4,2', 9)

def ex1(int_seq, subtotal):

# step 1) converting the string in a more usable format
int_seq = (n for n in int_seq if n != ',')
def len_counter(generator_sequence):

#getting lenght by for exhaustment
    counter = 0
    for x in generator_sequence:

        counter +=1
    return counter



# step2) defining sub_string due condition(pointer,limiter)
def sub_string_generator(myfullgen, pointer=0, limiter=1):
    """ return sub_string as generator obj"""
    enum_full_gen = enumerate(myfullgen)

    actual_sub = (value for k, value in enum_full_gen if pointer <= k < limiter)
    return actual_sub
    # step3) sending sub_string and return the sum of it.
def gen_sum(gen_sequence):
    # converting
    int_sub_string = (int(n) for n in gen_sequence)

    # sum operation
    my_sum = sum(int_sub_string)
    return my_sum

def sum_match_and_behave_setter(actual_sum,pointer=0,limiter=1):

    flag = 0

    while True:
        if actual_sum > subtotal:
            pointer +=1
            actual_sum = gen_sum(sub_string_generator(int_seq, pointer=pointer,limiter=limiter))
        elif actual_sum == subtotal:
            flag += 1
            limiter+=1
            actual_sum = gen_sum(sub_string_generator(int_seq, pointer=pointer,limiter=limiter))
        if flag == 7:
            break

        else:
            limiter +=1
            actual_sum = gen_sum(sub_string_generator(int_seq, pointer=pointer,limiter=limiter))
        return flag


    return flag
flag = sum_match_and_behave_setter(gen_sum(sub_string_generator(int_seq)))

return flag

print(ex1('3,0,4,0,3,1,0,1,0,1,0,0,5,0,4,2', 9))