157. Read N Characters Given Read4
- Total Accepted: 19570
- Total Submissions: 66588
- Difficulty: Easy
- Contributors: Admin
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.
Code
# 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) """ idx = 0 while True: if idx == n: return idx buf4 = [0]*4 read4_ret = read4(buf4) for i in xrange(read4_ret): if idx < n: buf[idx] = buf4[i] idx += 1 else: return idx if read4_ret < 4: return idx
Idea
You read contents into buf
. You should create a small buffer buf4
to save contents from read4
. Then, based on how many characters you have read, determine when to return.