有一个单色屏幕储存在一维数组中,给定表示屏幕的数组screen(数组中元素二进制表达的每一位分别对应连续的8个像素,二进制位数的从低到高对应像素的从左到右),用函数实现将第x到第y个像素涂上颜色(像素标号从零开始),返回涂色后的新的屏幕数组。请尝试尽量使用最快的办法并保证输入数据合法性。
测试样例:
[0,0,0,0,0,0],0,47
返回:[255,255,255,255,255,255]
有一个单色屏幕储存在一维数组中,给定表示屏幕的数组screen(数组中元素二进制表达的每一位分别对应连续的8个像素,二进制位数的从低到高对应像素的从左到右),用函数实现将第x到第y个像素涂上颜色(像素标号从零开始),返回涂色后的新的屏幕数组。请尝试尽量使用最快的办法并保证输入数据合法性。
[0,0,0,0,0,0],0,47
返回:[255,255,255,255,255,255]
# -*- coding:utf-8 -*-
class Render:
def renderPixel(self, screen, x, y):
for i in range(x, y + 1):
# 找出处于元素的哪一位 (从低到高)
k = i % 8
# 找出哪一个元素
t = i / 8
screen[t] = screen[t] | (1 << k)
return screen