Read N Characters Given Read4

NO IMAGE

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.

思路:就是每次read4只能讀一次,然後根據count決定是否加入buf,注意考慮讀出來的是0,則直接break,不讀了。

/* The read4 API is defined in the parent class Reader4. 
      int read4(char[] buf); */ 
 
public class Solution extends Reader4 { 
    /** 
     * @param buf Destination buffer 
     * @param n   Maximum number of characters to read 
     * @return    The number of characters read 
     */ 
    public int read(char[] buf, int n) { 
        int count = 0; 
        char[] mybuf = new char[4]; 
        while(count<n){ 
            int num = read4(mybuf); 
            if(num == 0) break; 
            int index = 0; 
            while(index < num && count<n){ 
                buf[count  ] = mybuf[index  ]; 
            } 
        } 
        return count; 
    } 
}