human
Count subarrays with same even and odd elements | function that returns the count of subarrays that contain equal number of odd as well as even numbers.
initialize difference and answer with 0.
initialize these auxiliary arrays with 0.
since the difference is initially 0 , we have to initialize hash_positive [ 0 ] with 1.
for loop to iterate through whole array ( zero - based indexing is used ).
incrementing or decrementing difference based on arr [ i ] being even or odd , check if arr [ i ] is odd.
adding hash value of ' difference ' to our answer as all the previous occurrences of the same difference value will make even - odd subarray ending at index ' i ' . After that , we will increment hash array for that ' difference ' value for its occurrence at index ' i ' . if difference is negative then use hash_negative.
else use hash_positive.
return total number of even - odd subarrays.
Driver code.
Printing total number of even - odd subarrays"
How can the above be solved in Python?

Give me a code to count subarrays with same even and odd elements and the other steps required?
assistant
#Here is code to count subarrays with same even and odd elements and the other steps required.
 def countSubarrays ( arr , n ) :
	difference = 0
	ans = 0
	hash_positive = [ 0 ] * ( n + 1 )
	hash_negative = [ 0 ] * ( n + 1 )
	hash_positive [ 0 ] = 1
	for i in range ( n ) :
		if ( arr [ i ] & 1 == 1 ) :
			difference = difference + 1
		else :
			difference = difference - 1
		if ( difference < 0 ) :
			ans += hash_negative [ - difference ]
			hash_negative [ - difference ] = hash_negative [ - difference ] + 1
		else :
			ans += hash_positive [ difference ]
			hash_positive [ difference ] = hash_positive [ difference ] + 1
	return ans
arr = [ 3 , 4 , 6 , 8 , 1 , 10 , 5 , 7 ]
n = len ( arr )
print ( " Total ▁ Number ▁ of ▁ Even - Odd ▁ subarrays ▁ are ▁ " + str ( countSubarrays ( arr , n ) ) )