Read N Characters Given Read4

xiaoxiao2021-02-28  19

题目:

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;     } }
转载请注明原文地址: https://www.6miu.com/read-2150224.html

最新回复(0)