The API: int read4(char *buf)
reads 4 characters at a time from a file.
The return value is the actual number of characters read. For example, it returns 3 if there is only 3 characters left in the file.
By using the read4
API, implement the function int read(char *buf, int n)
that reads n characters from the file.
Note:
The read
function will only be called once for each test case.
看了题目以为只要返回读取了多少个characters就可以,最后返回个int值。结果test case判断的时候是要看读取的string。
直接
# The read4 API is already defined for you.
# @param buf, a list of characters
# @return an integer
# def read4(buf):
class Solution(object):
def read(self, buf, n):
"""
:type buf: Destination buffer (List[str])
:type n: Maximum number of characters to read (int)
:rtype: The number of characters read (int)
"""
index = 0
while True:
buf4 = [""]*4
current = min(read4(buf4), index) # 用read4方法,把读取的存在buf4中
for i in xrange(current):
buf[index] = buf4[i] # 赋值给buf, test case会需要判断看是否buf读取了需要的characters
index += 1
if current!=4:
return index # 1.可能是读完了最后的read4返回小于4 2. 可能是文件够长,但是读够了已经需要的n