int80h
BAN USERdef spiralPrint(dArray,x1,y1,x2,y2):
#base condition
if x2<x1 or y2<y1:
return
#print top row
for i in range(0,x2-x1+1):
#print y1,i
print dArray[y1][x1+i]
#print right col
for i in range(1,y2-y1+1):
print dArray[y1+i][x2]
#print bottom col
for i in range(1,x2-x1+1):
print dArray[y2][x2-i]
#print left col
for i in range(1,y2-y1):
print dArray[y2-i][x1]
spiralPrint(dArray,x1+1,y1+1,x2-1,y2-1)
return
sample input:
dArray1 = [[1,2,3],[8,9,4],[7,6,5]]
dArray2 = [[10,11],[13,12]]
dArray3 = [[14]]
dArray4 = [[1,2,3,4],[12,13,14,5],[11,16,15,6],[10,9,8,7]]
spiralPrint(dArray1,0,0,2,2)
spiralPrint(dArray2,0,0,1,1)
spiralPrint(dArray3,0,0,0,0)
spiralPrint(dArray4,0,0,3,3)
why not simply use bit wise negation operator (~) and also I think that result of right shifting 1 by 31 will be 0 which when XOR with x is going to give x
- int80h February 01, 2013