## Saturday, January 9, 2016

### Hacker Rank Python Number List Solution with 3.x and 2.x





Problem Statement

An array A consist of N positive integers. List all the subarrays of array and replaced all the subarrayswith the maximum element present in the respective sub array.

View Problem at Hacker Rank

def numberList(a ,k):
result = 0

big = -1
alen=0
#print(a)
for val in a:
a[alen]=int(a[alen])
alen=alen+1

#print (alen)
k=int(k);
for i in range(alen):
if a[i] > k:
result += (i-big)*(alen-i)
big = i

return result

if __name__ == '__main__':
t = int(input())
for _ in range(t):
n,k = input().split()
a = input().split()
print(numberList(a ,k))




Python 2.x Solution

def numberList(a ,k):
result = 0

big = -1
alen = len(a)

for i in xrange(alen):
if a[i] > k:
result += (i-big)*(alen-i)
_big = i

return result

if __name__ == '__main__':
t = int(raw_input())
for _ in xrange(t):
n,k = map(int, raw_input().split())
a = map(int, raw_input().split())
print numberList(a ,k)





Differences of Syntax

1. print on Python 3.x uses ()
2. xrange() of Python changed to range()
3. python 3.x renamed raw_input() to input() in 3.x