Advertisement
ThihaNyein

Snail

Sep 26th, 2020
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.96 KB | None | 0 0
  1. import math
  2. def tosnail(ans):
  3.   if(ans==[]):
  4.     return [[]]
  5.   n=int(math.sqrt(len(ans)))
  6.   arr=[[0 for i in range(n)] for j in range(n)]
  7.   for i in range(n):
  8.     for j in range(i,n-i):#left
  9.       arr[i][j]=ans.pop()      
  10.     for j in range(i+1,n-i):#down
  11.       arr[j][n-i-1]=ans.pop()
  12.     for j in range(n-i-2,i-1,-1):#right
  13.       arr[n-i-1][j]=ans.pop()
  14.     for j in range(n-i-2,i,-1):#up
  15.       arr[j][i]=ans.pop()
  16.   return arr
  17.  
  18. def snail(arr):
  19.   if(arr==[[]]):
  20.     return []
  21.   n=len(arr)
  22.   ans=[]
  23.   for i in range(math.ceil(n/2)):
  24.     for j in range(i,n-i):#left
  25.       ans.append(arr[i][j])
  26.     for j in range(i+1,n-i):#down
  27.       ans.append(arr[j][n-i-1])
  28.     for j in range(n-i-2,i-1,-1):#right
  29.       ans.append(arr[n-i-1][j])
  30.     for j in range(n-i-2,i,-1):#up
  31.       ans.append(arr[j][i])
  32.   return tosnail(ans)
  33.  
  34. arr = [[1,2,3,4,5],
  35.        [6,7,8,9,10],
  36.        [11,12,13,14,15],
  37.        [16,17,18,19,20],
  38.        [21,22,23,24,25]
  39. ]
  40. snail(arr)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement