알고리즘 문제/CodeWar
Data Reverse
BEstyle
2022. 10. 13. 15:15
DESCRIPTION:
A stream of data is received and needs to be reversed.
Each segment is 8 bits long, meaning the order of these segments needs to be reversed, for example:
11111111 00000000 00001111 10101010
(byte1) (byte2) (byte3) (byte4)
should become:
10101010 00001111 00000000 11111111
(byte4) (byte3) (byte2) (byte1)
The total number of bits will always be a multiple of 8.
The data is given in an array as such:
[1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,1,0,1,0]
Note: In the C and NASM languages you are given the third parameter which is the number of segment blocks.
def data_reverse(data):
count=0
alist=[]
blist=[]
for i in range(int(len(data)/8)):
for j in range(8):
blist.append(data[(i*8)+j])
alist.append(blist)
blist=[]
alist=alist[::-1]
for i in range(len(alist)):
for j in range(8):
blist.append(alist[i][j])
return blist