EquiLeader 100% Solution in python

Question

app.codility.com

My Solution

app.codility.com

def solution(A):

    # check if A has a dominator
    length = len(A)
    stack = [0]*length
    size = 0
    
    for i in range(length):
        if size == 0:
            stack[size] = A[i]
            size += 1
        elif stack[size-1] != A[i]: 
            size -=1
        else:
            stack[size] = A[i]
            size += 1    
    
    count = 0
    for i in range(length):
        if A[i] == stack[size-1]:
            count += 1
    
    hasDominator = 0
    if count > length/2:
        hasDominator = 1
    else: 
        return 0
    
    # print(hasDominator)
    
    # if A has a dominator -> prefix sum each index of doiminator numbers
    prefixSum = [0]*length
    curSum = 0
    
    for i in range(length):
        if A[i] == stack[size-1]:
            curSum += 1
        prefixSum[i] = curSum
    
    # print(prefixSum)
    
    # final step find all the cuts points that makes equiDominator happen
    ans = 0
    for i in range(length):
        # print(prefixSum[i], " ",  (i+1)/2)
        # print(prefixSum[length-1]-prefixSum[i], " ", (length-i-1)/2)
        if prefixSum[i] > (i+1)/2 and prefixSum[length-1]-prefixSum[i] > (length-i-1)/2:
           ans += 1
    
    return ans